2011-11-25 23 views
1

我有一個的Satchmo部署瓦特/Django的內存泄漏

  • 阿帕奇2.2 MPM-prefork的
  • MySQL的5.1
  • mod_wsgi的3.3
  • MySQLdb的1.2.3運行500k的產品

技術堆棧支持(隨着時間的推移,將移植到nginx/gunicorn/etc ...) 這個站點有一個記憶體地獄ķ

本身的內存 16GB和隨着時間的推移運行服務器它是所有由Apache進程

調試關閉

消耗和高速緩存正在通過MySQL的

運行

我已經搜索並試驗了幾天,除了內存消耗已經減慢以外沒有任何改變。

任何建議追蹤這一個?

我的下一步是配置文件中的項目(不喜歡這個想法給出依賴於的Satchmo體積),雖然我不相信這個問題是與項目本身,因爲

  1. 我用的Satchmo之前沒有內存問題
  2. 這並不是我的開發機器
+0

作爲更新我爲nginx/uwsgi取消了apache/mod_wsgi - 雖然似乎還存在MySQL本身的問題,但仍然運行得更好 – Alvin

回答

2

你是如何運行的mod_wsgi上顯示?嵌入式模式或守護進程模式?嵌入模式和prefork是一個壞主意,除非你已經適當地設置了Apache。閱讀:

http://blog.dscpl.com.au/2009/03/load-spikes-and-excessive-memory-usage.html

http://blog.dscpl.com.au/2009/11/save-on-memory-with-modwsgi-30.html

另外,還要確保你是不是仍在加載mod_python的。

不是說內存使用的原因會跳出來,但您可以嘗試使用像New Relic這樣的生產監視工具,它可以查看應用程序內部發生了什麼。 Python代理和服務器監控工具都可能非常有用,特別是歷史製圖,因爲它可以更好地說明隨着時間的推移發生了什麼。

聲明:我現在在Python代理上爲New Relic工作。 :-)

+0

mod_python從未安裝在此服務器上 - mod_wsgi以守護進程模式運行 - 我會給New Relic一看 – Alvin