Я нашел много постов на этом сайте, в которых подробно рассказывается, как найти использование процессов в Linux, но большинство из них возвращают процент использования памяти / процессора на процесс. Мне нужно знать точное использование каждого процесса, поскольку результаты для процессов, которые меня интересуют, всегда округляются до нуля.
1 ответ
0
Использование памяти в современной операционной системе с виртуальной памятью и разделяемыми библиотеками определить сложно. Некоторые вещи усложняют вещи: Некоторые из памяти процесса могут:
- на самом деле не быть в оперативной памяти, но быть выгружены на диск
- еще не распределены, а распределены только при первом использовании
- поделиться с другими процессами
- быть файлом на диске, который кэшируется по соображениям эффективности.
- не системная память, а память, например, сетевой карты.
В зависимости от того, хотите ли вы включить / исключить части списка выше, вы получите разные результаты:
- RSS (Resident Set Size) в объеме памяти, который фактически находится в оперативной памяти для процесса. Это включает в себя общие библиотеки, но исключает выгруженные данные.
- VSZ (виртуальный размер) - это общий объем памяти, включая заменяемую часть.
Также см. Это предложение: https://stackoverflow.com/questions/7880784/what-is-rss-and-vsz-in-linux-memory-management