Como solucionar problemas de bloqueio do servidor da web (Debian Squeeze)

1

De vez em quando, meu servidor da Web fica mais lento, parece bloqueado. Não é possível entrar no SSH, nenhum site está sendo exibido. É um VPS que começou como o Debian 5 que eu atualizei para testing (squeeze). É uma configuração típica do LAMP com o único propósito de executar alguns sites wordpress. Uma vez, quando trancado, cheguei a um dos sites, mas foi o Wordpress reclamando que não poderia estabelecer uma conexão com o banco de dados. Então, parecia que algo estava realmente engolindo a CPU e o mysqld expirou, ou possivelmente falhou e não pôde reiniciar. Mas desde que eu não podia SSH em me sinto mais inclinado a atribuí-lo ao CPU. Mas os únicos processos em execução agora, além do sistema operacional e do kernel:

  • apache
  • mysqld
  • python (para fail2ban)
  • sshd
  • exim4

Possui 512M de RAM e 1,5 GB de swap. Toda vez que eu verifico, ele tem bastante memória livre e não está usando virtualmente nenhuma troca (geralmente 2-3M). E como estou executando o fail2ban, não acho que estou tendo ddosed.

Eu encontrei isso no meu e-mail logwatch esta manhã (trancado na noite passada, quando haveria muito pouco tráfego):

6 Time(s):  [<ffffffff810a0ebc>] ? oom_kill_process+0x7e/0x23d
6 Time(s):  [<ffffffff810a1505>] ? __out_of_memory+0x12a/0x141
6 Time(s):  [<ffffffff810a1586>] ? out_of_memory+0x6a/0x94

Eu não achei mais nada suspeito. Ele não pode ser o host do meu provedor porque eu posso conectar o SSH e reiniciar a VM, e tudo parece bem.

Alguém sabe em quais logs eu devo começar a examinar tudo para encontrar o núcleo do meu problema?

Obrigado rapazes.

    
por Ryan 10.04.2010 / 19:11

1 resposta

1

As mensagens são bem claras. O sistema está ficando sem memória e troca espaço, então o kernel está eliminando processos que tentam liberar memória. Você deve ver as mensagens do OOM nos seus arquivos de log em / var / logs.

O próximo passo é encontrar o (s) processo (s) que estão usando a memória. Eu encontrei o processo (s) de ser morto, geralmente não são os que ocupam a memória. Para isso, você precisa configurar alguma forma de monitoramento.

Uma alternativa é instalar algo nos moldes do ps-watcher para eliminar processos que consomem muita memória RAM. Você pode então verificar o log para qual processo o ps-watcher está matando com mais frequência para identificar o culpado.

    
por 10.04.2010 / 23:20