php-cgi进程占用cpu资源过多负载高的原因分析
发布日期:2015-12-11 14:12:12
服务器环境:nginx , phpfastcgi 及redhat linux 5.5 在这些环境下,一般php-cgi运行是很稳定的,但也有可能会遇到因php-cgi占用太多cpu资源而导致服务器响应过慢,一般php-cgi进程占用cpu资源过多的原因有: 1、程序中存在过度耗时且不可能完成的操作(还是程序的问题)。 2、程序中可能存在死循环,导致服务器负载超高(使用top指令查看负载高达100+), 需借助Linux的proc虚拟文件系统找到具体的问题程序。 3、php程序不合理的使用session , 这个发生在开源微博记事狗程序上,具体表现是有少量php-cgi进程(不超过10个)的cpu使用率达98%以上, 服务器负载在4-8之间,这个问题的解决,仍然需要借助Linux的proc文件系统找出原因。 4、一些php的扩展与php版本兼容存在问题:实践证明 eAccelerater与某些php版本兼容存在问题,具体表现是启动php-cgi进程后,运行10多分钟,奇慢无比,但静态资源访问很快,服务器负载也很正常(说明nginx没有问题,而是php-cgi进程的问题),解决办法就是从php.ini中禁止掉eAccelerater模块,再重启php-cgi进程就行了。
|