php-fpm其实有自己的内置状态页,通过这个状态页可以查看的php运行的性能数据,包括参数如图:
其中关键性能指标就是listen queue(正在等待的队列),max listen queue (历史最大等待队列个数),max children reached(达到最大子进程次数),slow requests(慢日志访问次数),可以很好的反馈出php运行现状或者历史上是否出现瓶颈,等待的情况,根据这些数据,判断是否需要调整php-fpm参数,已经需不需要调整程序代码。
开启方式与配置
- 先去php-fpm配置文件中找到,这个参数pm.status_path = /phpfpm_56_status(这个部分自定义,尽量别使用站点中用到的路径,避免配置后,站点跳转出错)
- 然后配置然后配置nginx,添加一段监听转发,使得我们可以跳转到这个参数页面
server
{
listen 80;
location ~ ^/phpfpm_56_status
{
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
}
参数意义分析
这个其中 max children reached 如果不是0,就必须要去根据服务器配置情况,调整php-fpm中最大子进程数量max children
如何根据配置情况跳转呢,我们其实需要知道服务运行时内存占用,可以使用full参数访问状态页面,如服务器端访问:
curl 127.0.0.1/phpfpm_56_status?full
可以得到cpu使用和内存使用量的情况,这里的cpu使用可以忽略,内存使用换算2M左右
然后我们根据自身服务器配置,增加修改自己PHP-FPM参数中max-children的大小,一般满打满算,300已经算是比较高并发的值了,一般8核16G的机器在这样的并发下面已经跑满,当然也要看具体程序一个进程占用量来具体估算,我说的部分纯当参考使用就好。
好了,小伙伴们,今天就到这里,可以很好的知道php到底运行的如何,是不是很酷。去试试吧!