查出谁占用cpu资源过多的php-cgi进程
时间:2016-02-27 15:08 来源:linux.it.net.cn 作者:IT
我们曾经介绍过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)
我们曾经介绍过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) |