Назад | Перейти на главную страницу

Как узнать, какой запрос обслуживает процесс mod_wsgi?

Иногда я получаю процесс apache, работающий на 100% CPU. Я пробовал позволить ему идти своим чередом, но я видел, как он работал более получаса, не сдаваясь. Моя текущая гипотеза заключается в том, что где-то в коде какого-то приложения есть бесконечный цикл.

Я использовал 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, чтобы увидеть, какой код выполняется?

Такие методы отладки описаны в документации mod_wsgi.