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