WARNING: [pool www] server reached pm.max_children setting (5), consider raising it 解决方法
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
翻译过来就是:
警告:[池WWW服务器达到pm.max_children设置](5),考虑提高它
我们只需要修改"pm.max_children" 参数即可!
说明:
pm.max_children = 30 //设置子进程最大数值
举例:
每个php-fpm子进程占用20M内存,服务器的内存是1G,除去系统中其他应用占用的内存。
假如系统为300M,剩余700M,700/20 = 35,最多设置35,可以取值稍微低一些为30。
与此同时我们还要调整以下参数
pm.start_servers = 10 //php-fpm启动起始进程数
pm.min_spare_servers = 10 //动态php-fpm的最小空闲进程数
pm.max_spare_servers = 24 //动态php-fpm的最大空闲进程数
pm.max_requests = 500 //所有子进程重启时间
举例:
所有子进程重启时间为300s一次,并发量为50,max_children设置为30;
max_requests = 300*50/30=500;
如果想让进程每隔一小时重生一次,则是3600*50/30=6000。
修改pm.max_children参数具体操作步骤:
如果你是用的一键安装包,请按以下步骤操作:
1、执行vim命令
vim /usr/local/php/etc/php-fpm.conf
pm.max_children = 5
直接修改为
pm.max_children = 20
提示:20这个值仅做参考,可以继续增加,具体的话请根据自己的服务器配置来设置;请按照上面的计算方法来设置;并不是越大越好!只要配置后不再报错就OK!
lnmp一键安装包,如果博主没记错,默认的是pm.max_children = 10;
1.查看php-fpm状态
ps aux|grep php-fpm
2.查看 php-fpm.conf
上面master进程可以看到,matster使用的是/usr/local/php/etc/php-fpm.conf这个配置文件,cat /usr/local/php/etc/php-fpm.conf 发现:
[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
;pid = run/php-fpm.pid
id文件路径应该位于/usr/local/php/var/run/php-fpm.pid,由于注释掉,所以没有生成,我们把注释去除,再kill -USR2 42891 重启php-fpm,便会生成pid文件,下次就可以使用以下命令重启,关闭php-fpm了:
php-fpm master 进程可以理解以下信号:
立刻终止:SIGINT/SIGTERM
平滑终止:SIGQUIT
重新打开日志文件:SIGUSR1/USR1
平滑重载所有 worker 进程并重新载入配置和二进制模块:SIGUSR2/USR2
例如:
关闭 php-fpm
kill -SIGINT `cat /usr/local/php/var/run/php-fpm.pid
php-fpm 重启
kill -SIGUSR2 `cat /usr/local/php/var/run/php-fpm.pid`