Назад | Перейти на главную страницу

Vmstat указывает, что память исчезает

Я хотел профилировать использование памяти скриптом. Вот результат до его запуска:

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
0  0  15624 186660  39460 439052    0    0     0     2    1    1  0  0 100  0

Вот результат работы скрипта в точке, где свободная память была на самом низком уровне:

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
0  0  15624  11464  40312 473524    0    0     0     2    1    1  0  0 100  0

Таким образом, свободная память упала примерно на 175 МБ, и я ожидал, что этот эффект увеличится на эту величину. Но кажется, что другие столбцы изменились на относительно незначительную величину - как это возможно? Я неправильно интерпретирую это, или в этом выводе просто не учитывается какая-то память?

Некоторая часть дополнительной памяти, которая больше не является свободной, используется в качестве кеша. Мы не можем сказать только по этой информации, для чего используется остальная память, но, скорее всего, это кеши уровня ядра, такие как метаданные файловой системы. Итак, память, которая раньше хранила что-то, что не могло быть полезным, теперь хранит информацию, которая может быть полезной. Так что это показывает, что дела идут к лучшему.