O que é “armazenado em cache” no comando top?

43

Ao executar top , obtenho:

top - 09:10:52 up 18:37,  1 user,  load average: 1.56, 1.33, 1.15
Tasks:  39 total,   1 running,  38 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.6%sy,  1.0%ni, 92.5%id,  5.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4194304k total,  3045460k used,  1148844k free,        0k buffers
Swap:        0k total,        0k used,        0k free,  2256128k cached

Veja a peça: 2256128k em cache? O que exatamente isso significa?

Estou comparando dois VPS de dois provedores, este sempre tem uma grande quantidade lá (70% da memória usada) e o outro provedor de VPS sempre mostra 0.

    
por KKK 10.10.2012 / 15:19

2 respostas

13

Esse número antes do cache é a quantidade de memória física que está sendo usada pelos buffers de cache para seus sistemas de arquivos.

O não está relacionado ao SWAP, apesar de estar na linha "Swap:".

Para verificar minha resposta com um pequeno experimento, tente o seguinte:

Execute top e observe o valor de 'cache'. Agora corra

dd if=/dev/zero of=~/trick bs=1M count=128

Se você topar novamente, perceberá que o 'cache' cresceu em 128M

Agora remova o arquivo

rm ~/trick

Executar o topo novamente e você verá que o 'cache' caiu 128M

Então, para Mem:

total = used + free e

used = <all apps> + buffers + cached

(onde os buffers são basicamente metadados para o cache). Um pouco confuso de uma interface do usuário.

    
por user61928 10.10.2012 / 15:34
106

o kernel Linux usará a memória disponível para o cache de disco, a menos que seja exigido por um programa em execução.

Isso é considerado bom; digamos que você tenha 4 GB de RAM e seus programas estejam usando apenas 1 GB. Os outros 3 GB serão desperdiçados. Apesar da impressão de que você está usando apenas 25% de sua memória, a contrapartida é que os outros 75% não estão sendo usados. Portanto, o kernel usa isso para armazenar arquivos em cache, o que melhora significativamente o desempenho. É automático; Ao contrário dos sistemas operacionais mais antigos, você não precisa decidir quanto devotar ao cache de disco ou configurá-lo manualmente.

"O cache de disco do Linux é muito discreto. Ele usa memória sobressalente para aumentar consideravelmente as velocidades de acesso ao disco e sem tirar nenhuma memória dos aplicativos. Uma loja de RAM totalmente usada no Linux é um uso eficiente do hardware, não um sinal de alerta. "

Essa é uma pergunta tão comum que existe um site inteiro dedicado a ela:

link

O site ainda tem uma maneira de esvaziar o cache de disco para que você possa executar alguns aplicativos e ver o quanto eles estão mais rápidos com o cache ativado:)

    
por roadmr 10.10.2012 / 16:05

Tags