Как top вычисляет цифры памяти в Linux?

5

Я немного запутался в том, как цифры памяти складываются сверху.

Если я правильно понял, количество «реально» используемой памяти полностью - свободно - буферизировано - кэшировано . В приведенном ниже примере это будет 14370248k - 75736k - 178892k - 10459552k = 3656068k, что составляет 25% от общего объема памяти (3656068/14370248).

Опять же, если я правильно понял, числа, показанные в столбцах RES и % MEM, показывают объем физической памяти, который процесс "реально" использует. Сумма значений RES только процессов httpd составляет 7254 млн. Или 7428096 тыс. (7254 * 1024), что составляет 52% от общего объема памяти (7428096/14370248). Сумма значений % MEM процессов httpd достаточно близка к 53%.

Почему итоговая часть показывает только 25% используемой памяти, тогда как одни только процессы httpd утверждают, что используют более 50% памяти? Что мне здесь не хватает?

top - 15:37:00 up 117 days, 18:27,  6 users,  load average: 4.82, 4.44, 3.60
Tasks: 433 total,   4 running, 429 sleeping,   0 stopped,   0 zombie
Cpu(s): 59.6%us,  6.5%sy,  0.0%ni, 33.0%id,  0.1%wa,  0.0%hi,  0.8%si,  0.0%st
Mem:  14370248k total, 14294512k used,    75736k free,   178892k buffers
Swap:  8388600k total,      116k used,  8388484k free, 10459552k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
3566 mysql     21   0  554m  60m 4576 S 74.6  0.4  11422:52 mysqld
23305 apache    15   0  327m  27m 3792 S  3.2  0.2   0:01.30 httpd
23474 apache    15   0  327m  27m 3800 S  3.2  0.2   0:01.09 httpd
...
jarnoan
источник

Ответы:

2

Процессы httpd, вероятно, разделяют некоторую память, потому что они разветвлены друг от друга. Из-за механизма копирования при записи все они утверждают, что память является их собственной виртуальной памятью, хотя она существует только один раз в физической памяти.

В общем, вывод памяти в Linux содержит различные типы болтов. Я бы не пытался понять это слишком много. Полезно посмотреть, ведет ли процесс себя не так, как должен; но цифры не обязательно складываются.

Питер Айзентраут
источник