Aqui está a aparência do gráfico de memória em um VPS executando o CentOS com 512 MB de RAM e nginx / php-fpm / mysqld servindo conteúdo (principalmente estático) a alguns milhares de visitantes por dia.
(esses são dias no eixo x)
Como você pode ver, é bastante irregular na área de cache e buffer. O cache da memória é eliminado em intervalos irregulares (descartando um trabalho cron responsável). Geralmente, mas nem sempre, é eliminado no ponto em que não pode crescer mais. Às vezes, limpa quase inteiramente, outras vezes apenas na metade do caminho.
Estou tentando entender a lógica por trás desses expurgos. Eu esperava que os dados do arquivo fossem armazenados em cache por muito mais tempo e não vi outros programas usando mais memória do que o normal quando o cache da memória é limpo.
Esse comportamento é normal ou estou faltando alguma coisa?
ATUALIZAÇÃO: Uma atualização de memória parece ter estabilizado o gráfico. Ainda estou vendo pequenas quedas, mas em nenhum lugar tão significativo quanto antes da atualização.
Respostas:
Poderia ser um monte de coisas. Talvez um dos programas que você está executando esteja ocasional e brevemente usando muita memória RAM. Se são realmente semanas no eixo x, você deve obter uma resolução muito mais alta (por exemplo, uma vez por minuto ou até mesmo um segundo) para obter mais informações sobre o que está acontecendo e que está causando a queda do cache.
ps
e atop
saída (incluindo a carga média) durante esse período também seria útil.fonte
Uma razão possível seria um arquivo crescente, como um digamos um log, ser removido, compactado ou enviado para outro lugar quando atingir um determinado tamanho.
Nos dois casos, seu tamanho em cache, possivelmente o todo, se não houver pressão de memória no sistema operacional, seria liberado do cache assim que o arquivo original fosse removido.
fonte