Це питання висвітлюється тут дуже докладно.
Як ви вимірюєте використання пам'яті програми чи процесу в Linux?
З статті блогу Розуміння використання пам'яті в Linux , psце не точний інструмент, який слід використовувати для цього.
Чому
ps"неправильно"Залежно від того, як ви на це дивитесь,
psне повідомляється про реальне використання пам'яті процесів. Насправді це показує, скільки реальної пам'яті займає кожен процес, якби це був єдиний запущений процес . Звичайно, типова машина Linux має декілька десятків процесів, які працюють у будь-який момент часу, це означає, що номери VSZ та RSS, проpsякі повідомляють , майже напевно помиляються .
psце навіть не показує - він показує номери віртуальної та резидентної пам’яті, де віртуальний - це максимальний об’єм пам’яті, який процес теоретично міг би використати, це був єдиний процес (ніколи не так), використовували кожну виділену сторінку (ніколи не буває) і не відображав чи знімав жодної сторінки (малоймовірно). У той час як резидент показує, скільки віртуальної пам'яті відображено на фізичну зараз. virt > usage > resОднак, як правило, для 64-бітної системи virt ~= res*10це дуже широкий діапазон.
