我的金字塔應用程序有一個長時間運行的任務(~30分鐘)。當調試工具欄打開時,內存使用率(RSS)開始超過30GB,導致OOM殺手會殺死整個Python進程。金字塔debugtoolbar導致內存「泄漏」
當我關閉調試工具欄時,RSS在任務運行期間一直保持在500MB以下,並且在使用內存時完全沒有問題。
我可以關閉debugtoolbar進行開發模式,但是我想讓它明顯的原因。運行任務前
反過來調試工具欄關閉,它的完成
告訴調試工具欄「忘記」跟蹤後:
我正在尋找這個問題的可能解決方案,如對象每隔一段時間(運行任務期間)
任何其他開關,標誌,調試工具欄,將減少其內存使用。
解決方案?
您的故事的開始 - 「我的金字塔應用程序有一個長期運行的任務(~30分鐘)」 - 聽起來非常錯誤......我看到我們甚至在一年前討論過這一點,我建議使用芹菜; )http://stackoverflow.com/questions/26195632/long-running-tasks-in-pyramid-web-app – Sergey
@Sergey:它似乎(錯誤)一見鍾情,但它不是真的 - 對於絕大多數任務我運行芹菜只是一個矯枉過正的問題。我過去使用過芹菜,這是一個很好的解決方案,但是我的大部分任務都需要幾秒到十幾秒的時間,而且我不必再設置另一臺服務器來運行。我已經使用APScheduler來運行在「帶內」附近(在另一個線程中,雖然它支持在單獨的進程中運行),並且對它非常滿意。附:與debugtoolbar我有一個memleak在一切。不只是這個比較大的任務。 – LetMeSOThat4U
我猜測這是因爲它記錄了內存中的所有數據庫調用。 –