2011-04-05 155 views
1

我有一個wsgi應用程序作爲mod_wsgi守護進程(守護進程模式)運行。我的設置是這樣的,如圖中的mod_wsgi配置準則後1000個請求每個守護程序重新啓動時,:在mod_wsgi守護進程'重新啓動

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

WSGIDaemonProcess www.site.com threads=1 processes=4 maximum-requests=1000

使得在一個守護進程的壽命是1000個請求。

我的問題是: 什麼時候守護進程重新啓動?在最大請求限制完成前一個請求後是否正確?

EDITED:修正了線程中的錯字。

回答

3

不推薦在生產設置中使用'最大請求',除非您的應用程序如此破碎以至於內存泄漏嚴重並且您不能/不想修復它。

也就是說,由最大請求觸發的標誌當前設置在請求的開始處,導​​致計數達到該值。然而,這是一個實現細節,可能會改變。例如,在mod_wsgi 4.0中,它不會如此清晰,因爲該版本在某些情況下引入了正常重啓超時的概念,這意味着在進程實際重新啓動之前可能會處理更多的請求。爲什麼你知道這很重要?

另外,你爲什麼設置'線程= 0'?你認爲結果會是什麼?這可能不是你的想法。

+0

謝謝。我只是很好奇如何重新啓動守護進程。我把它設置爲重新啓動,但我想最好是對內存進行徹底測試,然後將其刪除。 'threads = 0'是一個拼寫錯誤,它是單線程模式,所以有1個線程。 – vonPetrushev 2011-04-06 22:18:18