Como o top calcula os números de memória no Linux?

5

Estou um pouco confuso sobre como os números de memória se somam no topo.

Se eu entendi corretamente, a quantidade de memória "realmente" usada é total - livre - buffers - em cache . No exemplo abaixo, seria 14370248k - 75736k - 178892k - 10459552k = 3656068k, que é 25% da memória total (3656068/14370248).

Novamente, se entendi corretamente, os números mostrados nas colunas RES e % MEM mostram a quantidade de memória física que um processo "realmente" usa. A soma dos valores RES de apenas processos httpd é 7254m, ou 7428096k (7254 * 1024), o que representa 52% da memória total (7428096/14370248). A soma dos valores de % MEM de processos httpd é de 53%, perto o suficiente.

Por que a parte sumária mostra apenas 25% da memória sendo usada, enquanto os processos do httpd afirmam usar mais de 50% da memória? O que estou perdendo aqui?

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
...
    
por jarnoan 11.02.2010 / 13:53

1 resposta

2

Os processos do httpd provavelmente compartilham alguma memória, porque eles são separados um do outro. Por causa do mecanismo copy-on-write, todos afirmam que a memória é sua própria memória virtual, embora ela exista apenas uma vez na memória física.

Em geral, a saída de memória no Linux contém várias bogosities desse tipo. Eu não tentaria fazer muito sentido disso. É útil ver se um processo está se comportando de maneira diferente de como deveria; mas os números não se somam necessariamente.

    
por 11.02.2010 / 14:46