Trabalhadores ocupados com alto Apache e alta média de carga

2

Eu tenho experimentado um pico na média de carga em um servidor da Web que gerencio quase diariamente agora; aqui estão as especificações do servidor:

  • 6 x CPU dedicada de 2,4 GHz
  • 3 GB de RAM

Este é um VPS do qual está executando o debian 6, eu instalei o apache, php e mysql via apt . Não tenho certeza se existe uma configuração que estou errada.

Hoje, a média de carga atingiu um pico tão alto que o servidor falhou ao veicular o aplicativo da Web (WordPress). A imagem abaixo mostra nosso sistema de monitoramento de servidores. Você notará que a alta carga média se correlaciona com uma alta contagem de trabalhadores ocupados do apache e, subseqüentemente, a memória também é excedida.

Depoisdeforçarumareinicializaçãonoservidor,aindatenhoumamédiadecarregamentomaisaltaqueonormal,apesardeousodaCPUestarbaixo.Ascapturasdetelaaseguirmostramhtope,emseguida,iotop.

Amédiadecargaéagora>6,aquiestáoqueostatusdoservidorapachediz:

Estou realmente lutando para investigar isso. Alguém pode ajudar a descobrir isso?

Atualização 1

Eu pesquisei os logs de erro do apache e nenhuma palavra de nada atingiu o tempo máximo de execução. No entanto, eu obtenho muitos dos seguintes ... começando assim que o servidor começou a carregar:

::1 - - [24/Feb/2014:15:03:31 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:32 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:33 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:34 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:35 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:36 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:37 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:38 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:39 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:41 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"

Note como eles são aproximadamente 1 segundo depois do anterior ... talvez isso seja algo.

Atualização 2

Então eu fiz o host do servidor mover o VPS para um novo hipervisor, mas depois ele ainda tem um iowait bastante alto. Eu corri iostat 1 e é isso que eu recebi:

Isso ajuda a identificar o problema?

    
por Ben Everard 24.02.2014 / 16:47

2 respostas

1

Parece que você tem um script em algum lugar que está causando a carga.

Comece por percorrer seu log de erros do apache e procure por max_execution times ou timeouts. Vá para os logs de acesso e procure os scripts que estão sendo acessados, o que pode estar causando o enforcamento.

    
por 24.02.2014 / 17:01
0

Existem algumas coisas que você pode fazer para investigar o problema, incluindo o uso do vmstat 2 (por exemplo - isso exibirá a saída dos principais recursos a cada 2 segundos).

Uma coisa que salta para mim é a quantidade de swap sendo usada - 841MB em um servidor com 3 shows é muito substancial. Eu suspeito que o seu sistema está trocando, fazendo com que o OI vá muito alto e aumente a carga etc. Se essa hipótese estiver correta, a solução é lidar com a troca.

Você precisa jogar mais memória no sistema ou alterar o modo como a troca é feita ou ambos. Eu sugiro começar com o último - é fácil fazer apenas configurar o swappiness. Para fazer isso, digite echo 'vm.swappiness = 10' > > /etc/sysctl.conf e depois "sysctl -p". Isso fará com que a CPU trabalhe mais, mas troque menos. Em muitas VMs, o disco IO é um gargalo, então os efeitos são bastante instantâneos e notáveis.

Jogar mais RAM também reduz a quantidade de troca e acelera o sistema.

    
por 09.11.2014 / 01:13