NGINX下PHP-FPM占用内存状态及进程数调整

Posted code-is-poetry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NGINX下PHP-FPM占用内存状态及进程数调整相关的知识,希望对你有一定的参考价值。


网站出现500,查看SLOWLOG日志发现如下提示:


 WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 8 idle, and 58 total children
 WARNING: [pool www] server reached pm.max_children setting (50), consider raising it

昨天晚上刚改的看来又不够用了!


查看php-FPM内存占用的几个有用小命令,记录如下:


1.查看每个FPM的内存占用:


ps -ylC php-fpm --sort:rss

当然,在后后面加 | wc -l可查看系统当前FPM总进程数,我的目前在45个左右。


PHP官方的建议设置值:


pm.max_children = Total RAM dedicated to the web server / Max child process size


2.查看FPM在你的机子上的平均内存占用:

ps --no-headers -o "rss,cmd" -C php-fpm | awk ' sum+=$1  END  printf ("%d%s\\n", sum/NR/1024,"M") '




以上是关于NGINX下PHP-FPM占用内存状态及进程数调整的主要内容,如果未能解决你的问题,请参考以下文章

nginx+php-fpm故障排查

WebService之nginx+(php-fpm)结构模型剖析及优化

Linux的php-fpm优化心得-php-fpm进程占用内存大和不释放内存问题(转)

如何看php-fpm 进程数量是不是足够

[PHP] 循环查看php-fpm的内存占用情况

nginx/mysql查看内存占用