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 МБ, и я ожидал, что бафф увеличится на эту величину. Но, похоже, другие столбцы изменились на относительно незначительные суммы - как это возможно? Я неправильно истолковываю это или просто память не учитывается в этом выводе?
1 ответ
Некоторая дополнительная память, которая больше не свободна, используется в качестве кэша. Из этой информации мы не можем определить, для чего используется остальная часть памяти, но, скорее всего, это кэши на уровне ядра, такие как метаданные файловой системы. Таким образом, память, которая раньше содержала нечто, что не могло быть полезным, теперь содержит информацию, которая может быть полезной. Так что это показывает, что все становится лучше.