Понимание разницы между системной и процессной памятью в htop
Меня немного смущает статистика памяти, которую htop сообщает на одном из наших серверов. На верхних панелях отображается системная память как:
Mem: 456 / 7950MB
Таким образом, выглядит очень мало использования.
Тем не менее, мой основной процесс показывает использование памяти как:
VIRT RES SHR MEM%
13.3G 2388M 2239M 30%
Хм, намного выше.
Почему системная статистика показывает только 456 МБ, когда процесс сообщает, что он использует 2388 МБ?
Обновление Вот вывод из free
:
total used free shared buffers cached
Mem: 8141292 5425364 2715928 0 103560 4839368
-/+ buffers/cache: 482436 7658856
Swap: 2097148 0 2097148
2 ответа
Htop show memory: МУЖЧИНЫ ВСЕГО, ИСПОЛЬЗОВАННЫЕ, БУФЕРЫ И КЭШ Если вы суммируете используемые, буферы и кеш, вы получите результат, равный результат команды free. Но вам нужно учитывать все результаты, потому что процесс может использовать любую память. Man htop опишите память так:
M_SIZE (VIRT)
Size in memory of the total program size.
M_SHARE (SHR)
The size of the process’s shared pages
PERCENT_MEM(MEN%)
The percentage of memory the process is currently using (based on the process’s resident memory size, see M_RESIDENT below).
M_RESIDENT (RES)
The resident set size, i.e the size of the text and data sections, plus stack usage.
Я надеюсь, что помог.
Почему системная статистика показывает только 456 МБ, когда процесс сообщает, что он использует 2388 МБ?
Вы неправильно истолковали htop
выход.
Он сообщает, что 456 МБ свободно из 7950 МБ общей оперативной памяти.