Congelamento do servidor virtual (apache?)

1

Eu alugo um pequeno servidor virtual em 1und1.de. ( Link , mas apenas em alemão (2GB de RAM dinâmica, 512MB de pelo menos, 20 GB de HDD) Eu escolho rodar um Ubuntu 8.04 LTS como sistema operacional (64 Bits). Eu instalei o apache2 + php5 + mysql através dos repositórios do Ubuntu e depois do eAccelerator.

Estou executando algumas coisas de desenvolvimento e um site de produção. Este site é um tipo de diretório e tem alguns visitantes (250 por dia) e muitas páginas (cerca de 7,5k). A cada poucos dias os servidores congelam. Isso significa que ele está ativo, pode receber ping, mas qualquer outra ação resultará em "conexão recusada pelo servidor". Olhando para o painel de administração, ele diz que meu kmemsize está alto e também há muitos processos do apache que foram gerados.

Para mim, parece que meu apache consome todos os meus recursos (e também parece que esses congelamentos parecem começar se o Google ou outro rastreador começar a rastrear a página).

Então eu tentei evitar isso congela:

  • eu diminuí MaxKeepAliveRequests e KeepAliveTimeout na configuração do Apache
  • Eu configurei MaxRequestsPerChild na configuração das configurações do prefork, para manter os funcionários do Apache limpos com mais frequência.

Isso parece melhorar a situação, mas ainda estão congelando.

Alguém tem idéia do que poderia / deveria ser mudado?

Solução .

    
por TheHippo 17.08.2009 / 13:25

1 resposta

3

Descubra qual é o problema:
Não comece a sintonizar até usar algo como top ou o comando ps para ver o que está realmente usando a memória. Pode estar em qualquer lugar na pilha (Mysql, PHP, Apache). Se é o Apache ...

Mude para o Daemon HTTP mais leve:
Você já considerou um daemon HTTP mais leve como:

Considere um MPM diferente com o Apache:
Eu testaria muito isso antes de colocar isso em produção, mas você pode considerar trocar o Módulo de Processamento Múltiplo (MPM) do trabalhador (em vez de perfurar). Este artigo diz que isso foi usado em dealnews.com e ajudou com a memória uso. Eu não fiz isso com o Ubuntu, mas acho que é apenas:

sudo apt-get remove apache2-mpm-prefork
sudo apt-get install apache2-mpm-worker

Mas você pode querer considerar a criação do Apache a partir do código-fonte, para que você tenha apenas os módulos necessários, que podem ser um grande projeto. Além disso, no artigo, lembre-se:

This is an important part. You can't use radical extensions in PHP when you are using worker.

Ajuste o PHP também:
Este artigo do IBM Developerworks possui algumas opções de ajuste do php que podem ajudar a reduzir a memória também.

Ajustar o MySQL também:
O terceiro artigo no artigo sobre ajuste da IBM Lamp fala sobre o ajuste do MySQL. Isso pode acabar usando um pouco de memória.

    
por 17.08.2009 / 13:48