处理php-fpm高CPU占用

来自:互联网
时间:2023-02-09
阅读:
具体现象有:
  • CPU占用高:使用top命令观察到CPU用户态占用特别高,长时间70%以上。
  • php-fpm进程多:使用top命令观察到php-fpm进程特别多。使用wc统计到有160+个进程。
  • 等待线程多:使用top命令观察到等待进程高达8+。
处理思路:
  1. 降低php-fpm进程数:通过调整php-fpm.conf配置文件中pm.max_children字段,重启php-fpm并未见明显降低CPU占用率。
  2. 添加access日志:在php-fpm.conf配置文件添加中access.log = /XXX/access.$pool.logaccess.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%",观察日志,发现有一个接口访问量特别大,并且状态是404。预计就是这里出了问题。
处理结果:

Nginx上将这个api接口丢弃掉(经过讨论,该接口已经处于废弃状态),发现CPU占用恢复正常。

总结:

php-fpm貌似使用cgi技术,fork时会比较消耗资源,后来在nginx上丢弃效率就要高得多



作者:jinelei
链接:https://www.jianshu.com/p/3094d3bf8717
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
返回顶部
顶部