2012-06-09 71 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

獲取有關應用程序正在執行的堆棧跟蹤信息。

相關問題