Minha memória está cheia, mas a lista de processos está vazia

3

PROBLEMA

Minha memória está cheia, mas a lista de processos está vazia de programas pesados!

Uso:

A memória total é de 4 GB, mas apenas 400 MB é gratuita:

Monitorcomhtop:

Aoclassificarpor%MEM->programaspesadosusamapenas1%dememória!

QualprocessopreencheuminhaRAM?

    
por Seyed 07.03.2016 / 07:34

1 resposta

1
% bl0ck_qu0te%

Isso porque a memória é preenchida com metadados do sistema de arquivos (também conhecidos como "buffers") e o conteúdo dos arquivos (também conhecido como "armazenado em cache") armazenado em cache pelo kernel.

Como é comum que programas / usuários acessem esse tipo de recurso várias vezes em um curto espaço de tempo e não usar memória é um desperdício, o kernel armazena em cache para que eles sejam acessados mais rapidamente do que seria lendo-os novamente o disco.

A quantidade exata de dados armazenados em cache é informada nas colunas 5 e 6:

             total       used       free     shared    buffers     cached
Mem:          3838       2895        942        120        461        947
-/+ buffers/cache:       1487       2350
Swap:         4394        615       3779

Como os dados armazenados em cache podem ser descartados imediatamente se a memória for necessária para outra coisa, os dados armazenados em cache não serão realmente tirados e estarão disponíveis para os programas usarem.

A memória "real" (rede de buffers / dados armazenados em cache) usada / livre é reportada na terceira linha ("- / + buffers / cache:"):

             total       used       free     shared    buffers     cached
Mem:          3838       2895        942        120        461        947
-/+ buffers/cache:       1487       2350
Swap:         4394        615       3779

Para facilitar, você pode adicionar alguns aliases para imprimir apenas a memória "real" usada / livre em ~/.bashrc :

alias real_used="free -m | awk 'NR==3{print $3}'"
alias realf_free="free -m | awk 'NR==3{print $4}'"
    
por kos 14.03.2016 / 07:47

Tags