2012-06-09 74 views
0

在某些时候我的站点,运行在Apache2上,mod_wsgi只是停止处理请求。连接到服务器的保持不变,客户端等待进行响应,但不会由apache返回。此时的服务器是,CPU处于0%CPU,没有任何处理。我认为,Apache只是发送请求到队列中,并且从不会将它们从这里发送出去。 当我执行apache2ctl graceful问题没有解决。只有在apache2ctl restart之后。Apache停止处理请求(mod_wsgi?)

我的网站是金字塔的4个实例wsgi应用程序和2个Zope 3实例。它运行正常,没有速度问题,我知道。

版本:Ubuntu的 10.04 的Apache2 2.2.14-5ubuntu8.9 中的libapache2-MOD-WSGI 2.8-2ubuntu1

回答

0

听起来你正在使用嵌入模式来运行多个应用程序和您正在使用第三方Ç在子解释器中有问题的扩展,导致潜在的死锁。否则,您的代码会在内部死锁或阻塞外部服务,并且永远不会返回,从而导致可用进程/线程耗尽。

首先,您应该查看使用守护程序模式并将每个Web应用程序委派给不同的守护进程组,然后强制每个应用程序在主解释器中运行。

参见:

http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide#Delegation_To_Daemon_Process http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API

以其他方式使用说明调试技巧:

http://code.google.com/p/modwsgi/wiki/DebuggingTechniques

获取有关应用程序正在执行的堆栈跟踪信息。

相关问题