我运行的是带有 mod_wsgi、Python 2.7 和 mpm_worker 的 Apache 2.2。偶尔,其中一个 worker进程卡住并且所有线程都停止在写入状态(如下面的屏幕截图所示)。
对于一个工作进程来说,这种情况每天会发生一次。
我认为这是因为
Apache 中的一些内部问题
mod_wsgi 工作进程中的所有 Python 线程都以某种方式死锁
到目前为止,我发现的唯一补救措施是 Apache 完全重启(不正常)。
我希望找到一些指示来诊断问题的原因
为什么 Apace
Timeout
不终止工作线程/进程。时间timeout
是一分钟,但看起来这些线程和工作线程已经在一个请求上顺利运行了几个小时。是否可以从内部获取线程转储
mod_wsgi
并查看 Python 线程本身是否以某种方式死锁知道是什么原因造成的,以及如何补救这种情况吗?
下面是一个显示 Apache 的屏幕截图,server-status
其中一个工作进程(1-0)卡住了。
答案1
正如链接问题中所建议的那样,打开WSGIDaemonProcess
并切换到单独的守护进程后,这个问题不再出现。