Назад | Перейти на главную страницу

Понимание разницы между системной памятью и памятью процесса в 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

Htop показывает память: МУЖЧИНЫ ИТОГО, ИСПОЛЬЗУЕМЫЕ, БУФЕРЫ И КЭШ. Если вы суммируете использованные, буферы и кеш, вы получите результат, равный результату свободной команды. Htop вам необходимо учитывать все результаты, потому что процесс может использовать любую память. 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 МБ общей оперативной памяти.