Configuração do Apache MaxClients quando o KeepAlive está desativado

2

com o apache, é razoável reduzir MaxClients quando o KeepAlive está desativado? atualmente, MaxClients é definido como 150, que é o padrão para o mpm-worker.

  • nginx exibe arquivos estáticos e proxies reversos para o apache
  • estamos calculando a média em torno de 12 a 15 solicitações por segundo
  • cpu load avg nunca está acima de 0,8 em uma caixa quad-core

obrigado!

    
por matt 18.06.2009 / 19:14

4 respostas

2

Use o MaxClients para impedir que o seu servidor troque. geralmente é assim que eu ligo.

Eu tento descobrir o quão grande é cada processo do apache e, em seguida, descubro quantas posso ajustar razoavelmente à memória - essa é a configuração do meu MaxClients.

Se o seu site receber mais do que o número máximo de pedidos de MaxClients, você não deve acabar trocando. Clientes adicionais ficarão na fila de soquete até que um trabalhador esteja disponível. Se demorar muito, o servidor atingirá o tempo limite. Se a fila for muito longa, eles terão uma conexão recusada.

Se você tiver o MaxClients configurado muito alto, seu servidor da Web iniciará a conversão e a troca. Quando isso acontece, cada solicitação levará mais tempo para processar e você acabará agravando o problema.

    
por 18.06.2009 / 21:50
0

A menos que você esteja com problemas, vejo muito poucas razões para diminuir o MaxClients. Se qualquer coisa, você normalmente levantaria do padrão se você estivesse recebendo muito tráfego.

    
por 18.06.2009 / 20:37
0

Na sua configuração, o nginx está lidando com todas as conexões de usuários finais e o Apache é basicamente um servidor de aplicativos. Contanto que você tenha threads suficientes para lidar com solicitações, você deve estar bem. Os threads só devem crescer para 150 se você precisar de muitos outros, ele começará no StartServer 5 com o MinSpareServers 5 se você mantiver o padrão. Como é uma máquina quad core, 32 ou mais threads são provavelmente o máximo que você precisa, embora isso dependa da latência ou do bloqueio que ocorre enquanto o Apache está esperando no seu back-end.

No geral, eu provavelmente deixaria o MaxClients em paz e garantiria que o StartServers tivesse 25 (ou o que suportasse sua carga normal) em vez de 5, para que seu servidor estivesse pronto para lidar com o tráfego de produção assim que surgisse. Em seguida, eu alertaria sobre tópicos com mais de 50 ou o que parece ser "muito alto" para sua carga normal, pois isso pode indicar um back-end ou um ataque com desempenho insatisfatório no seu site.

Editar: Não sei por que eu supus que você tem threads, mas é o mesmo com os processos também.

    
por 18.06.2009 / 22:00
0

Defina MaxClients para um valor logo abaixo do nível em que sua máquina ficará sem RAM (supondo que seja um servidor web dedicado)

Se você não estiver esperando muito tráfego, verifique se o sistema de monitoramento está verificando o número de apaches em execução. Se for alto, tente descobrir por quê.

O Keep Alives deve estar normalmente ativado e definido para um tempo limite muito rápido para sites típicos de tráfego intenso.

    
por 18.06.2009 / 22:38