PHP sessionclean + lsof [RESOLVIDO]

1. PHP sessionclean + lsof [RESOLVIDO]

Fábio Berbert de Paula
fabio

(usa Debian)

Enviado em 09/10/2014 - 19:08h

Hoje um de meus servidores acusou load alto o dia todo sem motivo aparente.

Fui revisar os processos em execução e notei que o script de cron do PHP5 está ficando residente em memória. Existiam vários processos ainda em execução.

$ more /etc/cron.d/php5


09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/p
hp5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime)


A cada 30 minutos ele executa o seguinte comando:


/usr/bin/lsof -w -l +d /var/lib/php5


O problema é que o lsof não está completando sua execução. Ele fica residente em memória e consumindo CPU. Aí 30 minutos depois outro lsof entra em execução e os processos vão se acumulando.

Alguém já passou por esse problema?



  


2. Re: PHP sessionclean + lsof [RESOLVIDO]

Fábio Berbert de Paula
fabio

(usa Debian)

Enviado em 09/10/2014 - 19:23h

Descobri o problema. Por algum motivo esse cron job não está/estava limpando os arquivos de sessão em /var/lib/php5. Neste momento existem mais de 9 milhões de arquivos de sessão neste diretório.

O lsof ficava processando por tempo indeterminado por causa da quantidade de arquivos a serem lidos.

Agora só falta eu encontrar uma maneira segura de remover todo o lixo do diretório.



3. Re: PHP sessionclean + lsof [RESOLVIDO]

Fábio Berbert de Paula
fabio

(usa Debian)

Enviado em 09/10/2014 - 19:30h

Ok, problema resolvido:

# cd /var/lib/php5
# find . -name "sess_*" -atime +7 | xargs -r rm


(vai apagar os arquivos de sessão mais antigos que 7 dias)

Agora resta saber porque o cron job não estava deletando as sessões antigas. Caso o cron não esteja funcionando adequadamente, vou passar o gerenciamento de sessões inutilizadas para o próprio PHP (session.gc_probability no php.ini).







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts