我遇到了不熟悉的Apache症状,如果有人知道如何诊断,我很好奇。 我有一对运行mod_python和Apache的应用服务器,最近升级到了Django 1.2.3。 他们插入运行PostGIS和memcached的数据库服务器。
以下是我在“top”中看到的内容:
应用程序服务器的httpd进程爬升到20多岁。
应用程序服务器的CPU%w在过去几乎总是接近于零,开始在%50左右跳舞。
我重新启动Apache,问题就消失了。 到目前为止只有一次复发,但我很担心,我很好奇,要深究其中。 任何人见过这个? 知道处理它的聪明方式? 如果再次收获,我正在计划试着密切关注运营情况,但是没有很好的把握。
使用strace -T -f -p 1154其中1154是违规进程的进程ID。 然后使用grep和sed / awk和lsof来尝试清理哪些系统调用需要很长时间。 您可能会发现针对特定文件的read()或write()的变体需要很长时间。 你应该首先用lsof检查打开的文件列表来获取文件描述符(例如5),然后searchread(5,并检查最后的数字(例如<0.00056> )。数字越大,越多您需要调查文件所在的设备,这就是为什么lsof非常方便。
顺便说一下,在某些系统上,我必须针对进程发出SIGCONT ,因为strace发出SIGSTOP ,所以它是subprocess。 以root身份键入: cd /proc/1154/task; kill -CONT *; cd / cd /proc/1154/task; kill -CONT *; cd /