Nginx   发布时间:2022-05-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了nginx – 为什么php-fpm会产生并在没有服务器负载的情况下每秒摧毁数百个孩子?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

php7.0-fpm.log显示每秒产生数百个孩子,然后被立即销毁.这种情况不停发生.日志看起来像这样

[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4980 started
[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4978 exited with @R_237_6756@ after 0.014658 seconds from start
[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4981 started
[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4980 exited with @R_237_6756@ after 0.014354 seconds from start
[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4982 started
[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4979 exited with @R_237_6756@ after 0.015170 seconds from start
[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4983 started
[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4981 exited with @R_237_6756@ after 0.014709 seconds from start
[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4984 started
[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4982 exited with @R_237_6756@ after 0.014741 seconds from start
[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4985 started
[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4983 exited with @R_237_6756@ after 0.014727 seconds from start
[09-Mar-2017 02:58:25] NOTICE: [pool www] child 4986 started

/etc/php/7.0/fpm/php-fpm.conf中的设置:

pid = /run/php/php7.0-fpm.pid
error_log = /var/log/php7.0-fpm.log
include=/etc/php/7.0/fpm/pool.d/*.conf

/etc/php/7.0/fpm/pool.d/www.conf中的设置:

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
;pm.process_idle_timeout = 10s;
;pm.max_requests = 500
catch_workers_output = yes
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/phperrors.log
php_admin_flag[log_errors] = on

所有其他行都注释掉了; (默认设置).这是Ubuntu 16.04,使用默认包. php和Nginx版本如下:

php-fpm7.0 -v
php 7.0.13-0ubuntu0.16.04.1 (fpm-fcgi)
copyright (C) 1997-2016 The php Group
Zend ENGIne v3.0.0,copyright (C) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.13-0ubuntu0.16.04.1,copyright (C) 1999-2016,by Zend Technologies

Nginx -v
Nginx version: Nginx/1.10.0 (Ubuntu)

没有进行调整(除了启用日志记录).此服务器尚未部署到生产环境,因此没有用户负载.

为什么php-fpm产生并立即每秒摧毁数百名儿童?这是一个配置错误,还是Ubuntu 16.04附带了一个错误的php-fpm版本?

最佳答案
既没有错误配置也没有错误的版本.事实上,没有什么可担心的.

您的进程退出并快速重新生成的原因是您在php-fpm池配置文件中使用pm.max_requests的默认值,因为它是通过分号进行注释的;符号.要了解pm.max_requests参数的含义,您可以阅读以下默认配置中的描述:

你的评论是你自己的0.您可以将其设置为100-500(根据您的需要),以便在处理了大量请求后让您的php-fpm回收流程.

便说一下,你应该注意到你的日志文件中的这些消息只是信息性的而且没有任何错误,所以你不用担心.通过使php-fpm.conf中log_level参数的warning而不是notice的值,可以避免这些日志条目.它几乎显示了所有内容 – 比调试级别略低 – 因为默认值设置为通知.

取自默认配置:

祝好运

大佬总结

以上是大佬教程为你收集整理的nginx – 为什么php-fpm会产生并在没有服务器负载的情况下每秒摧毁数百个孩子?全部内容,希望文章能够帮你解决nginx – 为什么php-fpm会产生并在没有服务器负载的情况下每秒摧毁数百个孩子?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: