Em uma postagem no grupo Debian Brasil no facebook a respeito de consumo de memória ram no Debian, o membro Ricardo Wong deu uma bela explicação sobre o tema, confira.
Ricardo Wong
O gerenciamento de RAM do Linux é diferente do Windows .
No Windows assim que se sai de algum programa, toda RAM que ele usou é desalocada imediatamente, se tiver de reabrir o mesmo programa, tem de ser lido tudo do HD ou SSD .
No Linux assim que sai , o sistema mantêm tudo na RAM como cache , se reabrir o mesmo programa, ele evita carregar do HD ou SSD, reaproveita o que está cacheado na RAM.
Por isso no Linux quanto mais RAM ocupada melhor, maior será a chance de acerto de cache .
Se o Linux precisar de RAM, ele próprio irá verificar o que foi menos usado da memória cache, e desalocar automaticamente sem necessidade de intervenção do usuário .
Por isso memória disponível para carregar qualquer coisa não é a memória livre que aparece no comando 'free' , é o resultado de:
Memória total - Memória usada
A memória disponível sendo:
Memória Livre + Buffers/Cache
Se quiser confirmar , pode invalidar todo conteúdo de buffers/cache com o comando:
Após isso pode dar o comando 'free' e verá a memória disponível , semelhante ao que seria no Windows.
O problema é que se precisar abrir alguma coisa que já tiver usado antes, vai precisar ler direto do HD ao invés de carregar da cache em RAM, e a RAM é centenas de vezes mais rápida que qualquer SSD , além de consumir menos energia elétrica.
Por isso fazer drop_caches é uma prática ruim, por perder uma das vantagens que o Linux tem em executar mais rápido.
A sugestão é não se preocupar com a RAM, você só precisa se preocupar com a RAM se o swap começar a ser usado de forma frequente .
Enquanto não estiver sendo usado swap é indicativo que tem muita RAM sobrando e que deve usá-la para manter cache para acelerar o Linux .
Donate - Contribua para a melhoria do nosso trabalho!!
Gerenciamento de RAM do Linux
Ricardo Wong
O gerenciamento de RAM do Linux é diferente do Windows .
No Windows assim que se sai de algum programa, toda RAM que ele usou é desalocada imediatamente, se tiver de reabrir o mesmo programa, tem de ser lido tudo do HD ou SSD .
No Linux assim que sai , o sistema mantêm tudo na RAM como cache , se reabrir o mesmo programa, ele evita carregar do HD ou SSD, reaproveita o que está cacheado na RAM.
Por isso no Linux quanto mais RAM ocupada melhor, maior será a chance de acerto de cache .
Se o Linux precisar de RAM, ele próprio irá verificar o que foi menos usado da memória cache, e desalocar automaticamente sem necessidade de intervenção do usuário .
Por isso memória disponível para carregar qualquer coisa não é a memória livre que aparece no comando 'free' , é o resultado de:
Memória total - Memória usada
A memória disponível sendo:
Memória Livre + Buffers/Cache
Se quiser confirmar , pode invalidar todo conteúdo de buffers/cache com o comando:
su
echo 3 > /proc/sys/vm/drop_caches
Após isso pode dar o comando 'free' e verá a memória disponível , semelhante ao que seria no Windows.
O problema é que se precisar abrir alguma coisa que já tiver usado antes, vai precisar ler direto do HD ao invés de carregar da cache em RAM, e a RAM é centenas de vezes mais rápida que qualquer SSD , além de consumir menos energia elétrica.
Por isso fazer drop_caches é uma prática ruim, por perder uma das vantagens que o Linux tem em executar mais rápido.
A sugestão é não se preocupar com a RAM, você só precisa se preocupar com a RAM se o swap começar a ser usado de forma frequente .
Enquanto não estiver sendo usado swap é indicativo que tem muita RAM sobrando e que deve usá-la para manter cache para acelerar o Linux .
Donate - Contribua para a melhoria do nosso trabalho!!
Eu tava procurando por essa explicação! Não entendia porque aparecia tanta memória RAM sendo usada no top e htop, sendo que a soma de uso da memória física de todos os processos (coluna RES) sempre era bem menor.
ResponderExcluirObrigado!