我有Nginx + php5-fpm。我的网站每小时有几次卡住,在日志文件中我看到以下内容:
警告:[池 www] 服务器达到 pm.max_children 设置 (5),考虑提高它。
/etc/php5/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
服务器: AMD Opteron™ 3280,八核,8x 2.4 GHz,16 GB DIMM (DDR3)。
我不知道我应该在这个服务器的 www.conf 文件中输入什么数字。我可以帮助别人吗?谢谢
您的 PHP-FPM 会达到
max_children
. 最常见的是:max_children
查看您机器的规格,假设除了 PHP+Nginx 之外没有其他运行,我认为您可以将其设置为高于 5。您说您有 8 个内核,通常 Nginx 需要比 PHP 少得多的 CPU,所以有 5 个孩子您可能永远无法使用所有这些。我通常将其设置为number of cores x 2或number of cores x 4,具体取决于 PHP 脚本的内存消耗。
我发现通过设置 pm.max_requests 值(默认情况下被注释掉)有助于修复这些错误。此设置会强制子请求在执行一定数量的请求后重新生成,如果您的代码或第 3 方库中某处存在内存泄漏,此设置会很有帮助。
在/etc/php-fpm.d/www.conf中: