Должен ли я смотреть VmSize, VmRSS или какую-то комбинацию для статистики памяти в Linux?

Я пытаюсь рассчитать соответствующие данные о размерах в системе linux для продукта, и я хочу определить использование памяти. До сих пор я приближаюсь к нему:

cat /proc/<pid>/status

При просмотре вывода, но я не уверен, какие цифры имеют значение. Например:

VmPeak: 19662464 kB
VmSize: 18344416 kB
VmLck:         0 kB
VmHWM:   5942980 kB
VmRSS:   4734832 kB
VmData:  2108608 kB
VmStk:       120 kB
VmExe:      9256 kB
VmLib:    304448 kB
VmPTE:     10316 kB

Я бы подумал, что я бы использовал VmSize (Virtual Memory?) или VmRSS (Private Memory?) или какую-то комбинацию, чтобы определить это, но я не уверен. Любые указатели на правильное вычисление использования памяти в Linux?

Ответы

Ответ 1

Есть несколько команд, которые могут помочь вам определить использование памяти для данного процесса:

попробуйте pmap или pmap -x

вы также можете использовать старую и хорошую верхнюю команду

vmstat тоже будет полезен.

Ответ 2

Я думаю, что ответы не отвечали на ваш конкретный вопрос. Ключевым моментом является то, что важным значением, которое вы должны заботиться, является оперативная память, используемая в системе вашим процессом.

Таким образом:

  • В верхней части отображается как остаточная память: столбец "RES"
  • В значении '/proc//satus:' VmRSS '
  • В команде pmap: общее значение столбца "RSS" (внизу)

Приветствия,

Антонио

Ответ 3

Более точная информация о карте памяти процесса pid 1234 может быть задана путем чтения (например, с помощью команды cat) файлов /proc/1234/maps или /proc/1234/smaps. Вы также можете использовать команду pmap, например. pmap 1234