Eu tenho uma máquina com 128 GB de RAM que usa o Apache2 como servidor da Web (nesta máquina não há servidor de banco de dados, a máquina de banco de dados é uma máquina de 64 GB que pode lidar com 2000 conexões máximas). Vejo com uma ferramenta de monitoramento que atualmente existem cerca de 44 trabalhadores ocupados e 12 trabalhadores ociosos, quais são os melhores valores teóricos para o meu módulo pré-fork?
às vezes, recebia páginas em branco carregando sites em horários de alta carga e recebia esse erro no meu log de erros do apache:
[aviso] criança pid 13595 sinal de saída Falha na segmentação (11)
como pode resolver esse problema também?
Minha configuração do módulo Apache2 Prefork:
StartServers 3
MinSpareServers 3
MaxSpareServers 5
ServerLimit 3200
MaxClients 3100
MaxRequestsPerChild 0
Livre -h na máquina www :
total: 128 G grátis: 97 GB (com o apache2 em execução) buffers 0b compartilhados 1.9G cache 23G
Ram usado pelo Apache2 e outros programas:
Private + Shared = RAM used Program
96.0 KiB + 61.0 KiB = 157.0 KiB sh
176.0 KiB + 26.0 KiB = 202.0 KiB atd
176.0 KiB + 35.5 KiB = 211.5 KiB acpid
208.0 KiB + 19.5 KiB = 227.5 KiB mdadm
204.0 KiB + 30.0 KiB = 234.0 KiB init
248.0 KiB + 62.0 KiB = 310.0 KiB sendmail
376.0 KiB + 36.0 KiB = 412.0 KiB dbus-daemon
388.0 KiB + 285.5 KiB = 673.5 KiB cron (2)
820.0 KiB + 42.0 KiB = 862.0 KiB gam_server
920.0 KiB + 108.0 KiB = 1.0 MiB ntpd
968.0 KiB + 243.0 KiB = 1.2 MiB getty (6)
1.3 MiB + 351.5 KiB = 1.6 MiB udevd (3)
1.5 MiB + 343.0 KiB = 1.8 MiB sendmail-msp
2.0 MiB + 910.0 KiB = 2.9 MiB plugin-localresources2
3.4 MiB + 50.0 KiB = 3.4 MiB rsyslogd
3.6 MiB + 68.5 KiB = 3.7 MiB bash
1.9 MiB + 2.1 MiB = 4.0 MiB sendmail-mta (4)
3.8 MiB + 556.0 KiB = 4.3 MiB sshd (2)
3.7 MiB + 1.2 MiB = 4.8 MiB plugin-apache2
5.1 MiB + 1.2 MiB = 6.3 MiB agent-service
7.0 MiB + 654.0 KiB = 7.6 MiB fail2ban-server
9.6 MiB + 2.6 MiB = 12.2 MiB proftpd (8)
59.2 MiB + 70.0 KiB = 59.3 MiB miniserv.pl
96.8 MiB + 3.6 MiB = 100.4 MiB php5-cgi (2)
196.4 MiB + 35.9 MiB = 232.3 MiB apache2 (40)
---------------------------------
tot 450.0 MiB
Respostas:
Configurações de pré-fork do Apache, diretrizes de ajuste de desempenho por apache
citar:
você deve configurá-lo assim com base em sua entrada para:
Para calcular isso, você pode usar o seguinte script:
Essa é a melhor estimativa de quanto processo único do apache está usando memória ao tentar dividir proporcionalmente o uso compartilhado por número de processos ativos do apache e incluí-lo sobre os Pss (tamanho proporcional do conjunto)
Finalmente, você divide 115 GB com esse valor e recebe
MaxClients/ServerLimit
. A partir daqui, você pode calcular relativamente outros números, comoStartServers
30% dos clientes MaxClMinSpareServers
5% dos clientes MaxClMaxSpareServers
10% dos clientes MaxClServerLimit
== MaxClientsMaxConnectionsPerChild
10000 (como alternativa conservadora para resolver um possível problema com aplicativos com vazamento de memória)fonte
/server-info
: i.imgur.com/SS2gIXI.png