我在我們的服務器上使用ejabberd + mochiweb。我保持ejabberd和mochiweb運行的時間越長,消耗的內存就越多(昨晚它消耗了35%的內存,現在略高於50%)。我認爲這只是一個mnesia垃圾回收問題 - 所以我安裝了Erlang R13B3並重新啓動了ejabberd。這雖然沒有解決它。Ejabberd內存消耗(或泄漏?)
所以我注意到,現在在位全內存消耗的50%以上,它看起來像ejabberd的開始「放手」的記憶,留在50%左右。這是正常的嗎?爲〜50%ejabberd閾值,這樣,當它到達它,它說,「哎時候居然讓一些記憶去......」,也許它保留其餘各地的快速訪問(比如緩存的Mnesia?)
我很欣賞任何輸入。謝謝!
erlang:memory()顯示我使用〜30MB。 (現在頂部顯示〜1.0GB)。我注意到,在今天的某個時刻,內存「刷新」了下來,大約300MB被釋放了。我不知道這個內存在哪裏,但是我認爲ejabberd/erlang可以在需要時以某種方式釋放它。 難道這也是因爲我在Erlang R13B03上運行ejabberd 2.1.0? – ewindsor 2009-12-07 06:15:18
更正:頂部顯示使用的TOTAL內存約1.0GB,但erlang僅使用1.7GB的2.0%。 TOP中的數字不加起來。我沒有必要重置ejabberd,並且總內存似乎不會超過1.0GB。 (它波動〜20MB)。 我有2個進程執行每分鐘來「清理」和「重組」的東西。我讀到,ejabberd只在閒置3分鐘時纔在某些進程上進行休眠。這可能與它有關嗎? – ewindsor 2009-12-07 08:45:56