Por que o Linux limpa o cache de memória quando está quase cheio?

14

Veja como fica o gráfico de memória em um VPS rodando o CentOS com 512MB de RAM e conteúdo de nginx / php-fpm / mysqld (principalmente estático) para alguns milhares de visitantes por dia.

(essessãoosdiasnoeixox)

Comovocêpodever,ébastanteagitadonocacheenaáreadobuffer.Ocachedememóriaéremovidoemintervalosirregulares(excluindoumtrabalhocronresponsável).Geralmente,masnemsempre,épurgadonopontoemquenãopodecrescermais.Àsvezesdesaparecequaseinteiramente,outrasvezesapenasnametadedocaminho.

Estoutentandoentenderalógicaportrásdessesexpurgos.Esperoqueosdadosdoarquivosejamarmazenadosemcachepormuitomaistempo&nãovejonenhumoutroprogramausandomaismemóriadoqueonormalquandoocachedememóriaélimpo.

Estecomportamentoénormal,oueuestousentindofaltadealgo?

ATUALIZAÇÃO:Umaatualizaçãodememóriapareceterestabilizadoográfico.Aindavendopequenasgotas,masnadatãosignificativocomoeraantesdaatualização.

    
por redburn 23.10.2012 / 21:31

2 respostas

3

Pode ser um monte de coisas. Talvez um dos programas que você está executando seja ocasionalmente e brevemente usando muita memória RAM. Se isso é realmente semanas no eixo x, você deve fazer uma amostra com uma resolução muito maior (por exemplo, uma vez por minuto ou até mesmo segundo) para obter mais informações sobre o que está acontecendo que está causando a queda do cache. ps e top output (incluindo a média de carga) durante esse período também seriam úteis.

    
por 24.10.2012 / 23:47
2

Um possível motivo seria um arquivo crescente, como, por exemplo, um log, sendo removido, compactado ou enviado para outro lugar quando atingir um determinado tamanho.

Em ambos os casos, o tamanho do cache, possivelmente o todo, se não houver pressão de memória no sistema operacional, será liberado do cache assim que o arquivo original for removido.

    
por 20.12.2012 / 20:56