Я нашел много постов на этом сайте, в которых подробно рассказывается, как найти использование процессов в Linux, но большинство из них возвращают процент использования памяти / процессора на процесс. Мне нужно знать точное использование каждого процесса, поскольку результаты для процессов, которые меня интересуют, всегда округляются до нуля.

1 ответ1

0

Использование памяти в современной операционной системе с виртуальной памятью и разделяемыми библиотеками определить сложно. Некоторые вещи усложняют вещи: Некоторые из памяти процесса могут:

  • на самом деле не быть в оперативной памяти, но быть выгружены на диск
  • еще не распределены, а распределены только при первом использовании
  • поделиться с другими процессами
  • быть файлом на диске, который кэшируется по соображениям эффективности.
  • не системная память, а память, например, сетевой карты.

В зависимости от того, хотите ли вы включить / исключить части списка выше, вы получите разные результаты:

  • RSS (Resident Set Size) в объеме памяти, который фактически находится в оперативной памяти для процесса. Это включает в себя общие библиотеки, но исключает выгруженные данные.
  • VSZ (виртуальный размер) - это общий объем памяти, включая заменяемую часть.

Также см. Это предложение: https://stackoverflow.com/questions/7880784/what-is-rss-and-vsz-in-linux-memory-management

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .