Como calcular o valor de MaxClient no apache? [duplicado]

4

Eu quero definir um valor ideal para o MaxClient no apache do meu servidor de produção. Quais são os parâmetros que devo considerar ao calcular este valor?

    
por Supratik 06.05.2011 / 09:33

3 respostas

3

Consulte o guia Ajuste de desempenho do Apache .

Citação

"You can, and should, control the MaxClients setting so that your server does not spawn   
so many children it starts swapping. This procedure for doing this is simple: determine 
the size of your average Apache process, by looking at your process list via a tool such 
as top, and divide this into your total available memory, leaving some room for other 
processes."
    
por 06.05.2011 / 11:52
6

Complementando a resposta do @Sameer, eu li muito deste tema e o que eu faço é isso:

  1. Obtenha o tamanho médio do processo do Apache:

    server# ps -ylC apache2 --sort:rss
    
    S   UID   PID  PPID  C PRI  NI   RSS    SZ WCHAN  TTY          TIME CMD
    S    33  6233 25895  0  80   0  7432 72802 poll_s ?        00:00:00 apache2
    S    33  6250 25895  0  80   0  7432 72802 poll_s ?        00:00:00 apache2
    S    33  6278 25895  0  80   0  7432 72802 poll_s ?        00:00:00 apache2  
    S    33  6280 25895  0  80   0  7432 72802 poll_s ?        00:00:00 apache2 
    S    33  6577 25895  0  80   0  7432 72802 poll_s ?        00:00:00 apache2
    S    33  6299 25895  0  80   0  7772 72891 poll_s ?        00:00:00 apache2
    S    33  6295 25895  0  80   0  7776 72891 poll_s ?        00:00:00 apache2
    

    Como você pode ver na coluna SZ, o tamanho do meu processo Apache é de cerca de 73 MB

  2. Faça a seguinte fórmula

    MaxClients: ((Total_Memory)(1024)(MB) - Other_processes_memory) / 73
    

    Por exemplo: eu tenho 16 GB de RAM, posso deixar 2 GB livres para qualquer outro processo

    MaxClients: ((16*1024) - 2048) / 73
    MaxClient: 196 
    

Isso é o que eu uso & meu servidor está indo muito bem.

Você tem que considerar que meus processos do Apache são um pouco pesados, então você poderia ter processos de cerca de 50 MB ou menos.

Atenciosamente,

Sua SZ é ligeiramente a mesma para todos os processos do Apache. No meu caso eu tenho valores entre 23 e 212 Mb

Qual valor devo usar em sua fórmula?

A propósito, no Apache 2.4 MaxClients foi renomeado para MaxRequestWorkers. Sua fórmula ainda é válida para este novo parâmetro?

Atenciosamente

    
por 28.05.2014 / 16:26
3

A resposta do tachomi não é excessivamente abrangente, mas parece uma maneira razoável de começar a estimar.

Além disso, isso ajudará você a descobrir alguns dos recursos que o Apache está consumindo atualmente:

ps aux | grep 'httpd' | awk '{count = NR;} END {print count " Apache processes";}'
ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{sum += $1;} END {print sum " MB total mem usage";}'
ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB avg mem usage";}'
    
por 22.04.2017 / 20:12

Tags