mongodb佔物理記憶體
ringa_lee
ringa_lee 2017-04-24 09:13:16
0
4
895

mongodb佔物理內存,我們一台伺服器8G內存,沒有開mongodb的時候,物理內存只佔11%,當開了mongodb,mongodb進程的內存顯示是60M,但物理內存已經是99%,請問是什麼原因?有沒有最佳化的辦法,我們是在WINDOWS系統.

ringa_lee
ringa_lee

ringa_lee

全部回覆(4)
伊谢尔伦

我記得,一個叫唐建法的人說:mongodb不是吃內存,而是它設計初衷就是要故意佔內存。

大家讲道理

mongodb本身就是不做記憶體管理的,它的記憶體管理完全依賴系統。你可以用系統效能監視器看下記憶體和虛擬記憶體。簡單點來說你有多少記憶體mongdb就會吃多少,就是這麼貪得無厭,它會把絕大部分熱數據都會放在記憶體裡來提升效能,畢竟這也是它的優點。
我們的伺服器是windows server 2008,有32G內存,運行了一段時間後,也是被吃光,但性能讓人驚喜,但那台伺服器上不光只有mongodb,所以經常影響到其他程序,後來我們嘗試用windows的系統資源管理器WSRM,限制mongodb進程的內存,確實有效果你可以試試看。
但我是前年開始使用mongodb的,當時版本比較老,限制內存後mongodb很不穩定,偶爾掛掉,看日誌顯示大體意思是找不到映射的內存了。所以後來我們放棄了限制內存,改用每天定點用程式使用mongodb的指令釋放內存{closeAllDatabases:1}
這個指令也是有成本的,會阻塞到指令完整,而且剛釋放完後效率會降低,要經過一段時間的「暖身」才能慢慢恢復。
我覺得後面這種方法不錯,而且透過這兩年的觀察一切都比較穩定。當然你們要是能單獨給mongodb一台伺服器那是再好不過的了。

迷茫

新的 MongoDB 引擎會認為自己是系統中唯一重要的服務,因此會盡量佔用記憶體來作為自己的快取(不是作業系統的快取)。如果你需要為其它進程保留內存,或者有多個 MongoDB 實例,可以使用 --cacheSizeGB 參數來限制 MongoDB 的快取大小。

刘奇

我寫了腳本每天凌晨清除快取。 。 。
http://onwise.xyz/2017/02/23/...

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板