php-fpm: Qual é o gargalo para aceitar conexões mais rapidamente?

2

Em uma página de status do php5-fpm, qual é o gargalo que está impedindo meu servidor de accept() 'de novos soquetes rápido o suficiente?

pool:                 www
process manager:      static
start time:           20/Jan/2015:16:37:18 +0000
start since:          176705
accepted conn:        903749
listen queue:         0
max listen queue:     129
listen queue len:     128
idle processes:       59
active processes:     69
total processes:      128
max active processes: 128
max children reached: 0

Como você pode ver, cheguei à minha fila de espera e isso acontece com bastante frequência. Eu entendo a lógica básica por trás da fila de escuta, e é apresentado em alguns detalhes aqui: página de status do php-fpm: quais são os itens de" fila "neste relatório?

Eu percebo que devo aumentar o tamanho da fila, e eu farei isso. No entanto, minha pergunta é por que minha fila de espera está sendo preenchida, e qual é o gargalo para evitar que ela seja preenchida em primeiro lugar? Eu suponho que se houver um grande backlog de escuta, então tem que haver algo que não está "acompanhando"? É um problema de afunilamento / carga da CPU que não é possível accept() rápido o suficiente?

    
por A.B. Carroll 22.01.2015 / 18:50

1 resposta

3

Você não parece ter processos de trabalho PHP suficientes para o tráfego que está recebendo.

As soluções óbvias são:

  1. Permitir mais processos totais. Mas você precisa ter a CPU e a RAM para lidar com isso e não disse nada sobre quais recursos você tem disponível ou quanto foi consumido.
  2. Faça seu aplicativo ser executado mais rapidamente. Melhor programação, uso apropriado de cache de páginas e cache de opcode, etc.
por 22.01.2015 / 19:45