Por que eu obteria números diferentes ao executar free -m
o monitor do sistema? Estou executando o Firefox com flash há alguns dias e minha máquina ficou lenta; ocupou todo o 1 GB da minha memória, então fechei o firefox e o npviewer.bin e a memória do sistema agora diz que estou com 192 MB de RAM, onde, como free -m
diz, 647 MB?
Qualquer pensamento, eu acho que o monitor do sistema está certo.
Responder1
Em qualquer sistema operacional remotamente sofisticado, não há uma noção clara de quanta memória um determinado aplicativo usa ou de quanta memória está livre. As principais fontes de complicações são:
- Se você tiver swap, você inclui espaço de swap livre na memória livre? Se não, qual o sentido de trocar? Mas se você fizer isso, provavelmente sempre terá muita memória livre, mesmo que seu sistema esteja se debatendo (ou seja, trocando muito) devido à falta de RAM.
- Existem muitos usos para a memória. Os dois principais são a memória alocada pelos aplicativos e a memória dedicada aos caches de disco. Esses dois normalmente têm a mesma ordem de magnitude em um sistema sem recursos. Se você contar apenas a memória que não é usada para nenhuma finalidade, é normal ter muito pouca: os caches de disco não desaparecerão até que haja necessidade de memória. Mas se você incluir os caches de disco na memória livre, você pode pensar que pode preencher tudo com memória de aplicativo, mas então você irá se debater devido à falta de cache de disco.
- A memória compartilhada dificulta a contagem da porção de memória alocada para um aplicativo específico. A memória compartilhada inclui coisas como bibliotecas compartilhadas e caches de disco para arquivos abertos por mais de um aplicativo.
Portanto, ambos os números que você relata provavelmente estão certos, apenas contando as diferentes noções de “memória livre”. (E free
relata vários números; você não disse qual é 647 MB - na -/+ buffers/cache
linha, os caches de disco contam como memória livre, enquanto na Mem
linha não.)