Como encontrar a causa da crescente carga do servidor

11

Estou tendo problemas de carga com o meu servidor e, apesar de ser um administrador Linux experiente, estou sem ideias agora.

O problema é uma carga lenta mas progressiva no servidor sem causa aparente.

O servidor é um processador AMD Athlon (tm) 64 X2 de núcleo dual 6000+ com 6 GB de RAM. Ele está rodando Debian Stable com Linux gir 2.6.26-2-amd64 # 1 SMP qua 19 Ago 22:33:18 UTC 2009 x86_64 GNU / Linux.

O servidor basicamente roda o Lighttpd, vários processos PHP FastCGI e um banco de dados MySQL. Tarefas típicas do servidor web.

A CPU nunca está totalmente esgotada e a memória é usada principalmente para buffers e cache, o que é bom. Tentei reiniciar os vários serviços para ver se um deles diminuiria a carga novamente, mas sem sorte.

Aqui estão gráficos mostrando carga, CPU e IOStat:

Então, a pergunta é: o que poderia causar uma carga lenta, mas sempre crescente? E como descubro o que é responsável?

Atualização: esqueci de mencionar que, quando eu reiniciar o servidor, a carga será reduzida para cerca de 0,3 a 0,6 e começará a subir novamente lentamente nas próximas semanas.

    
por Andreas Gohr 03.11.2009 / 10:43

6 respostas

4

Encontrei uma dica excelente em resposta a um pergunta .

Procurando processos no estado 'D' mostra quatro processos PHP que parecem travar por um bom tempo, correspondendo aos "passos" da curva de carga:

#> ps aux | awk '$8 ~ /D/  { print $0 }'
wiki      6651  0.0  0.0      0     0 ?        D    Oct04   0:41 [php-cgi]
bugs      6731  0.0  0.0      0     0 ?        D    Oct27   0:14 [php-cgi]
manpages  7536  0.0  0.0      0     0 ?        D    Oct30   0:21 [php5-cgi]
wiki     23847  0.0  0.0      0     0 ?        D    Oct06   1:32 [php-cgi]

Então, esses parecem ser o problema. Agora preciso descobrir enquanto esses processos estão pendurados e como corrigi-lo. Obrigado a todos.

    
por 04.11.2009 / 12:51
6

Cada processo zumbi adiciona 1.0 ao carregamento. Você pode estar vendo um acúmulo de zumbis.

    
por 03.11.2009 / 12:41
2

Meu palpite é que o servidor é IO faminto, talvez você devesse adicionar as estatísticas do iotop aos gráficos

Gostaria de saber se você pode ter uma atividade do io por aplicativo que também é um fator para a carga do servidor

link

outra ferramenta é dstat

    
por 03.11.2009 / 10:59
2

Se fosse E / S, ele veria o iowait (rosa) nos gráficos da cpu.

    
por 03.11.2009 / 15:42
0

Esse tipo de problema geralmente vem do disco rígido, que não é rápido o bastante para servir os dados requeridos pelo banco de dados MySQL e pelo servidor HTTP. Você deve olhar para o comando iostat

    
por 03.11.2009 / 12:28
-1

Em geral, não é uma coisa ruim ter uma alta carga de servidor; Isso significa que você não está ocioso e fazendo menos do que poderia. 80% -90% de carga de sua capacidade total (com alguma sala "burst") é o que geralmente é procurado. Eu recomendaria verificar a saída de mpstat e vmstat. Em particular, os primeiros 2 números do vmstat podem fornecer informações mais significativas sobre como você fez o backup em termos de processos na fila de execução. A última coluna ("wa") da saída do vmstat pode informar se, e por quanto tempo, você está aguardando por conclusões de E / S. O tamanho da fila de execução e o tempo de espera de E / S são frequentemente correlacionados. Verifique também o sar (do pacote sysstat): isso lhe dá uma visão detalhada do que está acontecendo durante um período de tempo; as métricas registradas são muito completas.

    
por 08.11.2009 / 00:49

Tags