我如何知道 mod_wsgi 进程正在处理什么请求?

我如何知道 mod_wsgi 进程正在处理什么请求?

偶尔,我会发现某个 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 文档中介绍了此类调试技术。

相关内容