偶尔,我会发现某个 Apache 进程的 CPU 使用率达到 100%。我尝试让它自行运行,但我发现它运行了半个多小时却没有停止。我猜测是某个应用程序代码中存在无限循环。
我已经使用过 mod_status,但是 PID 没有显示在那里。
我已经连接了 GDB 并得到了这个回溯:
#0 0x00895424 in __kernel_vsyscall ()
#1 0x00574cde in poll () from /lib/i686/nosegneg/libc.so.6
#2 0x0012d520 in apr_poll () from /usr/lib/libapr-1.so.0
#3 0x00707902 in ?? () from /etc/httpd/modules/mod_wsgi.so
#4 0x0070e7b1 in ?? () from /etc/httpd/modules/mod_wsgi.so
#5 0x00d1e81a in ap_run_post_config ()
#6 0x00d09812 in main ()
所以看起来是 mod_wsgi 进程给我带来了麻烦。有没有办法让我弄清楚该进程中有哪些请求?
或者,有没有办法让我附加一个 Python 分析器或调试器来查看正在运行的代码?
答案1
mod_wsgi 文档中介绍了此类调试技术。