根據請求,我們正在使用大量內存的單個apache進程出現問題,並且從不將它釋放回主系統。由於這些請求可能隨時發生,因此隨着時間的推移,Web服務器被推送到交換中,即使對SSH也無法響應。更糟糕的是,在請求完成後,Python無法將內存釋放回野生環境,導致數個500mb-1gb的Apache進程處於閒置狀態。在mod_python中殺死單個Apache進程
我們每秒推送很少的請求,但每個請求都有可能非常大。
我想要做的是有一種方法來殺死一個單獨的apache進程的孩子,如果它的駐留內存超過了一定的閾值,完成服務請求。我嘗試了幾種在mod_python中實際執行此操作的方法,但似乎任何形式的系統退出都會導致響應未完成到客戶端。
在優化所有進程(我們真正想要避免的)時,除非發生這種情況,否則無論如何要告訴Apache在完成服務請求後任意地終止進程?所有想法都歡迎。
作爲一個額外的警告,由於系統的傳統特性,我們無法升級到更高版本的Python,所以我們無法利用改進的2.5內存性能。同樣,我們堅持使用我們當前的操作系統。
版本: 系統:紅帽企業4
的Apache:2.0.55
的Python:2.3.5
爲什麼要移動到一些不死的東西,比如mod_wsgi而不是一個選項? – 2011-02-23 19:36:30
時間限制主要。最終這就是計劃,但是我們使用的框架需要一些真正的工作來遷移。我們希望黑客能夠在這個版本中滿足要求,並在接下來的版本中換出mod_python。 – Andrew 2011-02-23 19:55:17