> Linux教程 > Linux学习 >

查出谁占用cpu资源过多的php-cgi进程

我们曾经介绍过PHP-CGI进程占用过多CPU的情况,下面将以图文描述告诉大家,,故障排除步骤:


1. 查出占用cpu资源过多的php-cgi进程的pid(进程id)。


使用top命令即可,如下图:





经过上图,我们发现,有两个php-cgi进程的cpu资源占用率过高,pid分别是10059,11570,这一般都是程序优化不够造成。下一步我们需要定位问题的php程序位置。




2. 找出进程所使用的文件

ll /proc/文件系统保存在内存中,主要记录系统的状态,关键配置等信息,而/proc/目录下有很多数字目录,就是进程的相关信息,如下图,我们可以确定进程10059正在使用的软件情况。



从上图可以看出,使用了/home/tmp/sess_*文件,这明显是PHP的session文件, 我们查看这个session文件的内容为:view_time|123333312412

到这里,我们已经可以怀疑是由于php程序写入一个叫view_time的session项而引起, 那么剩余的事件就是检查包含view_time的所有php文件,然后修改之(比如改用COOKIE),这实话, 这个view_time并非敏感数据,仅仅记录用户最后访问时间,实在没必要使用代价巨大的session, 而应该使用cookie。


3. 找出有问题的程序,当然是要将其修正啦。

(责任编辑:IT)