我看到一些MongoDB的非映射虛擬內存使用率非常高。我可以看到top
和pmap
中的大量虛擬內存告訴我,它大部分未分配給文件。此外MMS
通過顯示大量的非映射虛擬內存來證實這一點。mongodb的高度非映射虛擬內存
圖形狀態的MMS
描述以下有關非映射虛擬存儲器:
如果該數目是非常高的(多個千兆字節),它指示過度存儲器正在使用的其它方面比內存映射文件 - 這將是壞的/不理想的。爲非映射使用大量內存的最常見情況是與數據庫有很多連接。每個連接都有一個線程堆棧,並且這些堆棧的內存可以加起來相當多。保持這個統計數據合理的低是很重要的,因爲這裏使用的內存不可用於緩存。
所以現在我想知道我在這裏看到的數量是否不合理,如果它實際上是一個問題,或者它是好的。數量可以在圖像中看到,但我也會在這裏解釋它們,以防萬一。
我的數據庫大小約爲12.5GB。常駐內存使用量爲11GB,映射爲18GB,虛擬化速度高達118GB。連接數據庫的數量大約是50(在40和60之間移動),所以看起來並不是原因。
0000013f9dfff000 521296K ----- [ anon ]
000001439e400000 1024K ----- [ anon ]
000001439e500000 1024K rw--- [ anon ]
000001439e600000 2048K ----- [ anon ]
000001537ce33000 820K ----- [ anon ]
000001537cf00000 20K rw--- [ anon ]
000001537cf05000 4K ----- [ anon ]
000001537cf06000 996K rwx-- [ anon ]
000001537cfff000 4K ----- [ anon ]
000001537d000000 20K rw--- [ anon ]
000001537d005000 4K ----- [ anon ]
000001537d006000 996K rwx-- [ anon ]
特別是約.5GB的第一個條目似乎過度:
,我看到很多類似這樣的條目中pmap
輸出這可能是值得一提。根據一些問題,我發現它經常回來,共159次。這可以解釋我看到的大部分金額。我不知道這些條目來自哪裏。
我在CentOS 6.4(64位)上使用MongoDB v2.4.1。
你可以分享錯誤報告鏈接以供參考嗎?使用eval是邪惡的(赦免雙關語),所以我不介意看一看 –
'rockmongo'問題可以在這裏找到:https://github.com/iwind/rockmongo/issues/28。蒙戈的票是私人的,所以我不能分享這不幸的。不幸的是,「rockmongo」機票比我的答案中有更多的信息。從他們身邊一直沒有任何活動,我已經停止使用它(現在使用'robomongo',因爲我們改變了我們的設置以允許VPN)。 –