RH 7.2: O uso de memória em ps e top não corresponde; problema ou comportamento normal?

1

Quando eu uso o comando "top" na minha máquina Red Hat 7.2, ele me diz que ~ 3.9 de 4.0 GB de RAM estão em uso, e que há cerca de 135 meg livres.

Quando eu uso o comando "ps", no entanto, para listar todos os processos e sua utilização de memória, a lista só adiciona cerca de 650megs.

Esse comportamento esperado, ou há algo acontecendo que deve ser motivo de preocupação? Eu li que o Linux vai usar a RAM livre para armazenar em cache os arquivos usados com freqüência do disco, isso poderia explicar a utilização de RAM "ausente"?

Obrigado!
Vingador IVR

    
por IVR Avenger 01.09.2009 / 19:52

2 respostas

3

Seu palpite está provavelmente correto.

O número "free memory" fornecido pelo top não inclui o que é usado para o cache ou buffers do sistema de arquivos. A memória alocada para o cache do sistema de arquivos é gratuita, pois, se um processo precisar de algum, ele poderá ser facilmente disponibilizado, mas o top não mostrará isso.

free -m

lhe dará uma idéia melhor da quantidade de memória que seus processos estão realmente usando (em MB), na linha "- / + buffers / cache".

É claro que ainda não é igual a seus cálculos com base na saída de ps exatamente, porque calcular o uso da memória no Linux é complicado, especialmente em torno da memória compartilhada.

No exemplo a seguir, 1287MB é muito mais preciso como uma exibição de memória livre do que 31MB.

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2002       1970         31          0         48       1207
-/+ buffers/cache:        714       1287
Swap:         1027          3       1023
    
por 01.09.2009 / 21:26
0

top frequentemente tem problemas com excesso de relatórios de memória compartilhada; Um exemplo perfeito desse fenômeno é o Java Application Server ou o Apache.

    
por 01.09.2009 / 20:34