php-fpm: ajuda a entender start_servers, min_spare_servers, max_spare_servers

7

Estou tentando ajustar minha instalação do php-fpm para meu servidor, e tenho dificuldade em descobrir o que fazer com as variáveis pm.start_servers , pm.min_spare_servers e pm.max_spare_servers . Estou usando pm = dynamic

pm.max_children é perfeitamente claro. Cada processo filho serve 1 cliente da web de uma só vez. Está bem. O que é um "servidor", então? Claramente, com base na configuração padrão que tenho, 1 servidor pode servir mais de 1 filho. Qual é o limite superior? O que devo usar como regra geral para # de filhos / servidor? Ou está relacionado a todos? Em algum fórum, alguém estava alegando que # de servidores deveria ser 2 x # de núcleos de cpu, mas eu vi configurações recomendadas onde o número era muito maior, 40-50.

Nem a documentação do PHP nem os muitos artigos de "tuning php-fpm" foram úteis.

    
por Bintz 16.02.2017 / 05:05

1 resposta

10

Basicamente, o número de processos que o php-fpm terá em execução a qualquer momento é muito configurável quando você define dynamic como você faz. Quando definido como static , SEMPRE será que muitos processos filhos estão em execução. Geralmente, você o define como dinâmico para conservar recursos. Cada processo filho pode manipular uma solicitação. O limite superior é dependente de quão pesado é o seu aplicativo php e quanto tráfego você recebe. Você também deve calcular a média do consumo de memória de cada criança e garantir que você NUNCA permita que o número de filhos exceda a quantidade de memória RAM instalada em seu servidor ou você iniciará a troca ou até mesmo o início do kernel. processos.

; Choose how the process manager will control the number of child processes.
; Possible Values:
;   static  - a fixed number (pm.max_children) of child processes;
;   dynamic - the number of child processes are set dynamically based on the
;             following directives:
;             pm.max_children      - the maximum number of children that can
;                                    be alive at the same time.
;             pm.start_servers     - the number of children created on startup.
;             pm.min_spare_servers - the minimum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is less than this
;                                    number then some children will be created.
;             pm.max_spare_servers - the maximum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is greater than this
;                                    number then some children will be killed.
; Note: This value is mandatory.

Ao definir essas opções, considere o seguinte:

  • Por quanto tempo sua solicitação é média?
  • Qual é o número máximo de visitantes simultâneos que o site recebe?
  • Quanta memória, em média, cada criança processa?
por 16.02.2017 / 05:50