Meu site recebe muito tráfego por 2 horas durante o dia (2.000 acessos por minuto). O resto do dia recebe menos tráfego (500e acessos por minuto). Tenho experimentado os valores MaxClients e MaxSpareServers, mas ainda consigo algum tempo de inatividade durante as horas de espiada.

Como posso calcular os melhores valores para minha configuração com base na quantidade de memória RAM que possuo?

Cada processo tem cerca de 36-40 M de memória

             total       used       free     shared    buffers     cached
Mem:          3096        793       2302          0          0          0
-/+ buffers/cache:        793       2302
Swap:  

      0          0          0

Valores que estou usando agora

<IfModule prefork.c>
StartServers 10
MinSpareServers 22
MaxSpareServers 60
ServerLimit 90
MaxClients 90
MaxRequestsPerChild  400

ATUALIZAÇÃO: encontrei isso no meu provedor de hospedagem.

http://kb.mediatemple.net/questions/246/(dv)+HOWTO:+Basic+Apache+performance+tuning+(httpd)

Eu tenho o pacote extreme e usei 190 em MaxClients em vez de 200. Tentei por meia noite e recebi algumas mensagens de linha de comando de erro malloc, mas usando o comando free e consegui cerca de 800 M na coluna free.

Responder1

Se o seu servidor sofre picos, pode ser porque o Apache lida com o processo e a criação de threads muito lentamente (no modo mpm_prefork é 1 novo subprocesso por segundo). Se você conhece suas necessidades de 'alto tráfego' (digamos que sejam 200 processos), diga ao Apache para obtersempreesses 200 processos prontos, mesmo que não façam nada 90% do tempo. Você estará pronto quando as pessoas chegarem.

Confira esta apresentação útil (antiga, mas legal) http://www.techpresentations.org/Hacking_Apache_HTTP_Server_at_Yahoo!

Não há necessidade de StartServers, MaxSpareServers, MinSpareServers - apenas MaxClients (tamanho constante do pool)

Responder2

A resposta depende muito do tipo de conteúdo que você está veiculando. É conteúdo dinâmico ou estático? É uma ampla gama de conteúdos ou um único documento?

Você pode usarmemcachedpara armazenar os documentos na memória, o que permitirá um dimensionamento considerável (eliminando um gargalo no disco), mas tudo depende de quanta RAM você tem e se o conteúdo muda muito.

Responder3

Precisa testar dependendo do hardware do seu servidor (especialmente memória) e da eficiência do site que você está executando. O que está acontecendo quando você tem tempo de inatividade? Você está atingindo os limites que definiu? Você está ficando sem memória?

Responder4

Se você estiver em uma situação com pouca memória (VPS), talvez seja necessário diminuir o maxclients padrão para evitar a morte do swap.

Se você não estiver,não toque nisso.

Ajustar os filhos do Apache é uma daquelas coisas como compilar um kernel personalizado onde as pessoas esmagadoramente fazem mais mal do que bem, mesmo que o mal seja apenas desperdiçar uma tarde sem nenhum benefício. Acontece que o pessoal do projeto httpd no Apache é muito bom no que faz! Quero dizer, quem pensou nisso?

informação relacionada