Ao instalar o php, quem for cuidadoso poderá descobrir que também instalamos o módulo php-fpm. O módulo fpm é responsável por processar o processo de solicitação. As operações relacionadas do fpm afetarão diretamente quantas solicitações o servidor pode responder. As configurações adequadas melhorarão efetivamente a eficiência do processamento, caso contrário, ocorrerá o tempo limite do gateway 502 ou o erro 504.
Vamos abrir o arquivo www.conf em /etc/php/7.2/fpm/pool.d e encontrar os seguintes parâmetros:
pm=dynamicpm.max_children=17h.start_servers=14h.min_spare_servers=13h.max_spare_servers=3;pm.max_requests=500
Estes são os parâmetros padrão após o autor instalar o PHP. Vou explicá-los um por um abaixo:
A primeira dinâmica indica que o modo de processamento do processo é dinâmico e também existe um modo estático correspondente.
Se pm estiver definido como estático, apenas o parâmetro pm.max_childern terá efeito.
Se pm estiver definido como dinâmico, os próximos quatro parâmetros entrarão em vigor. O sistema iniciará os processos php-fpm pm.start_servers quando o php-fpm começar a ser executado e, em seguida, ajustará dinamicamente o número de processos php-fpm entre pm.min_spare_servers e pm.max_spare_servers de acordo com as necessidades do sistema.
O segundo parâmetro pm.max_children indica o número máximo de processos que podem ser bifurcados (iniciados). Obviamente, quanto maior a quantidade, mais solicitações poderão ser feitas ao mesmo tempo. Naturalmente, não haverá conexões lentas ou. longos tempos de espera de solicitação, mas a CPU ou a memória ainda estarão disponíveis. A ocupação não é alta. Este valor refere-se ao número de processos php-fpm abertos em modo estático e limita o número máximo de processos php-fpm em modo dinâmico.
O terceiro parâmetro pm.start_servers indica que se for modo dinâmico, vários processos serão iniciados no estado inicial, e então ajustados dinamicamente conforme necessário, e é determinado pelos dois parâmetros pm.min_spare_servers e pm.max_spare_servers.
O quarto parâmetro pm.min_spare_servers representa o número mínimo de processos php-fpm em estado inativo no modo dinâmico e o número retido após a limpeza de processos inativos
O quinto parâmetro pm.max_spare_servers representa o número máximo de processos php-fpm em estado inativo em modo dinâmico, ou seja, quando os processos inativos atingem este valor, eles são limpos.
O sexto parâmetro pm.max_requests indica o número de solicitações antes de destruir o processo e reiniciá-lo, o que pode evitar vazamentos de memória.
Obviamente, max_children aqui é 5, o que é suficiente no início. À medida que o tráfego aumenta, definitivamente não será suficiente. O princípio mais básico é o impacto mais direto. : Se os recursos do sistema de memória e CPU permitirem, quanto maior, melhor. Aqui está um método de cálculo. Por exemplo, um processo fpm é de cerca de 15 ~ 25M. 150 ~ 300 quando totalmente utilizado e, em seguida, observe o status do servidor e faça ajustes.
De modo geral, servidores de memória grande (como 32 e 64G e superiores) podem considerar o modo estático, que tem bons efeitos de simultaneidade. Servidores de memória pequena podem considerar o modo dinâmico, que pode ser controlado automaticamente sob demanda.
Você pode testar o estresse de acordo com sua situação e fazer ajustes de acordo com as condições do seu servidor.