Apache conf para CMS de alto tráfego com usuários backend?

1

Estou na situação em que um site terá um grande número de usuários da web e alguns webmasters de back-end.

Os webmasters farão upload de imagens (+ outras tarefas altas de mem) e isso aumenta a alocação de memória dos processos filhos do httpd para 100-150mb. Para interromper a troca, atualmente estou definindo MaxClients em httpd.conf para 20. No entanto, isso reduz as solicitações simultâneas máximas. Isso será um problema quando o site for publicado?

Qual é a melhor configuração?

Informação: Drupal 6, PHP 5, Apache 2.2 (Prefork atm)

Estou pensando no Worker MPM, em duas instâncias do apache ou no baixo MaxRequestsPerChild.

    
por Annan 31.01.2011 / 18:01

1 resposta

1

O fato é que ninguém sabe qual é a melhor configuração para sua própria configuração, mas há algumas diretrizes que você pode usar para encontrá-la. O livro "Construindo Web Sites Escaláveis" aborda isso muito bem.

Primeiro, você precisa informar qual nível de serviço é aceitável. Por exemplo, para acomodar 10 usuários simultâneos, com tempos de carregamento de página de percentil 90 de menos de um segundo com 99,99% de tempo de atividade.

Em seguida, faça um benchmark para descobrir quantos usuários você pode acomodar atualmente. Se você não consegue atingir seus objetivos (como dito acima), você precisa de otimizações (leva o seu tempo) ou mais hardware (leva o seu dinheiro (chefe)). Além disso, saiba que os ganhos das otimizações diminuem à medida que você passa mais tempo neles. Ao ajustar as configurações do aplicativo, aponte para frutas penduradas baixas. Então siga em frente. Em algum momento você precisa de hardware mais rápido.

Com o Drupal, migrar para o Pressflow, Varnish, Memcache e APC são suas grandes otimizações. Eu faria isso primeiro.

Veja também sua arquitetura e verifique se ela pode ser dimensionada. Você deve poder adicionar mais servidores da Web ao cluster, se necessário.

Espero que isso ajude.

    
por 31.01.2011 / 23:18