configuração do servidor httpd do apache dedicado e ajuste de desempenho

2

Eu tenho a seguinte caixa dedicada que eu instalo somente o servidor apache httpd, quais parâmetros no httpd.conf devo ajustar para atingir o máximo desempenho?

cat / proc / cpuinfo mostra 8 processadores (apenas colados um abaixo, outros são idênticos)

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Xeon(R) CPU           E5410  @ 2.33GHz
stepping    : 6
cpu MHz     : 2333.470
cache size  : 6144 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 4
apicid      : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm
bogomips    : 4666.94
clflush size    : 64
cache_alignment : 64
address sizes   : 38 bits physical, 48 bits virtual

free -m

             total       used       free     shared    buffers     cached
Mem:         16054      15546        508          0        251       8084
-/+ buffers/cache:       7210       8843
Swap:        16370          0      16370
    
por user12145 09.02.2011 / 03:18

2 respostas

2

Alguns comentários que podem ajudar você:

  • As configurações do Apache que causam o maior impacto no desempenho são a memória de cada instância (depende do número de mods carregados e de sua configuração) e o número de MaxClients / Servers definidos. Se o Apache é realmente a única coisa necessária no servidor, então você geralmente quer eliminar qualquer mod que você não precise e então aumentar o MaxClients / Servers para usar o máximo de RAM possível, mas nunca tanto quanto começar a usar o swap. Para determinar isso, você precisará testar a configuração ...
  • Eu sugiro enfaticamente testar o aplicativo usando ab / siege ou um framework similar. Isso permitirá que você determine as configurações ideais para o seu aplicativo, além de fornecer alguns números da capacidade do seu hardware. Você pode descobrir, por exemplo, que com as configurações padrão você pode obter 500 req / s sem piscar, e nesse caso gastar tempo otimizando as coisas será um desperdício. Por outro lado, pode-se dizer que você só pode obter 20 req / s na melhor das hipóteses, o que significa revisar a arquitetura geral do aplicativo.
  • Execute novamente o teste de estresse sempre que fizer uma alteração na configuração, no software ou no hardware do sistema. Isso lhe dirá o efeito que tudo tem e permitirá que você tome decisões mais informadas para otimizar as coisas. Se você não medir / testar, há um risco de gastar muito tempo / dinheiro trabalhando em coisas que não têm efeito (ou pior, na verdade, tem um efeito negativo).
  • Considere o uso de software diferente para as partes dinâmicas e de proxy / balanceamento de carga, embora seu servidor seja grande o suficiente para não fazer muita diferença.
por 09.02.2011 / 19:23
1

Você deve considerar o uso de HAProxy ou nginx como um balanceador de carga / proxy; o Apache não é muito bom nisso, porque não pode processar solicitações de forma assíncrona. O Apache simplesmente não é projetado para esse tipo de tarefa. Usar um proxy / balanceador assíncrono habilitado para E / S pode economizar muitos recursos. E você não precisa de um servidor tão grande para fazer proxy / balancear 100 solicitações por segundo, consegui fazer proxy de cerca de 500 solicitações por segundo usando o HAProxy em uma instância Rackspace Cloud de 512Mb (ele usava um CPU quad core, mas um LA estava em torno de 0,1 tipicamente neste host, então eu não precisava de tanto poder de processamento).

    
por 09.02.2011 / 03:49