resolvido colocando vm.zone_reclaim_mode = 0
Eu rodei uma máquina CentOS 5.7 64 com ram de 24GB e executando o kernel 2.6.18-274.12.1.el5.
Esta máquina executa somente Nginx, php-fpm e Xcache como aplicativos extras.
Desde cerca de 3 semanas, o meu comportamento de memória nesta máquina mudou e não consigo explicar porquê. Não há nenhum código em execução que dispare algo assim. Também não há grandes números de arquivos sendo excluídos / alterados durante essas quedas.
A memória 'cache' é descartada a cada poucas horas, mas nunca é um intervalo definido entre liberações, isso indica para mim que algum gargalo é alcançado. Também parece ser sempre quando os usos totais da memória chegam a cerca de 18 GB, mas, novamente, nem sempre exatamente 18 GB.
Este é um gráfico do meu uso de memória:
Comovocêpodevernográfico,os'buffers'sempreficammaisoumenosiguais,éprincipalmenteo'cache'queédescartado.
Executandovmstat-m
Envieiousodamemóriaimediatamenteantesedepoisdeumaquedadememória.Asaídaestáaqui:
Cerca de 3 semanas atrás, meu servidor travou durante um pesado ataque de DDOS, depois que reiniciei a máquina, esse comportamento estranho começou. Verifiquei vários logs, reiniciei a máquina novamente e não consegui encontrar nenhuma indicação do que mudou.
Durante essas quedas de memória 'cache', meu uso do iNode cai ao mesmo tempo.
Alguém tem alguma idéia do que pode estar causando esse comportamento? Claramente minha memória RAM não está cheia, então estou curioso para saber o que isso pode estar acontecendo.
O que significa um gráfico de memória comprometida irregular?
Sockets criam inodes quando uma conexão é aceita (), de modo que o comportamento do inode pode ser de uma explosão massiva de conexões sendo abertas ou fechadas, respectivamente. Isso pode acontecer quando (como na pergunta vinculada) o logrotate mata um monte de processos FastCGI. Não tenho certeza se isso se aplicaria ao php-fpm.
Apenas uma teoria maluca, e isso não explica realmente porque o cache é limpo ao mesmo tempo. Ainda assim, pode valer a pena dar uma olhada?