Этот вопрос освещен здесь очень подробно.
Как вы измеряете использование памяти приложением или процессом в Linux?
Из блога статьи Понимание использования памяти в Linux , psне является точным инструментом для использования для этого намерения.
Почему
ps"неправильно"В зависимости от того, как вы на это смотрите,
psне сообщается о реальном использовании памяти процессами. На самом деле он показывает, сколько реальной памяти занимал бы каждый процесс, если бы он был единственным запущенным процессом . Конечно, на типичном компьютере с Linux в каждый момент времени выполняется несколько десятков процессов, а это означает, что сообщаемые номера VSZ и RSSpsпочти наверняка неверны .
psэто даже не показывает - он показывает номера виртуальной и резидентной памяти, где виртуальный - это максимальный объем памяти, который процесс теоретически мог бы использовать, это был единственный процесс (никогда), использовавший каждую отдельную страницу, которую он выделил (никогда не бывает) и не отображать и не отображать какие-либо страницы (маловероятно). Пока резидент показывает, сколько виртуальной памяти сейчас сопоставлено с физической. virt > usage > resОднако, как правило, в 64-битной системе virt ~= res*10это очень широкий диапазон.
