您好,登錄后才能下訂單哦!
小編給大家分享一下mongodb占用空間大是什么原因,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!
一、現象
最近發現自己服務器內存越來越少,查了一下原來是部署的mongodb使用內存在線性增加。不查不知道,一查嚇一跳,竟然占用了3G的內存。。
二、分析
1.內存增加的原因
mongo為了優化他的讀寫效率,將內存當做緩存,所以你讀寫次數越多,緩存就越大。默認值:
從3.4開始,WiredTiger內部緩存默認使用較大的一個:
50%(RAM - 1 GB),或
256 MB。
例如,我是8G內存,那么最大緩存0.5*(8-1)=3.5G,看到了么。。。mongo默認3.5G都是他的緩存。
2.cacheSizeGB的介紹
storage.wiredTiger. engineConfig.cacheSizeGB
wiredtiger將使用所有數據的最大緩存大小,wiredTiger緩存工作集(working set)數據的內存大小,單位:GB,
此值決定了wiredTiger與mmapv1的內存模型不同,它可以限制mongod對內存的使用量,而mmapv1則不能(依賴于系統級的mmap)。
默認情況下,cacheSizeGB的值為假定當前節點只部署一個mongod實例,在MongoDB 3,默認情況下,wiredtiger緩存,使用1 GB或安裝的物理內存的一半,以較大者為準。
如果當前節點部署了多個mongod進程,那么需要合理配置此值。
如果mongod部署在虛擬容器中(比如,lxc,cgroups,Docker)等,它將不能使用整個系統的物理內存,則需要適當調整此值。默認值為物理內存的一半。
三、解決方案
修改(增加)cacheSizeGB配置。
配置如下:
engine: wiredTiger # mmapv1: wiredTiger: engineConfig: cacheSizeGB: 1
看完了這篇文章,相信你對mongodb占用空間大是什么原因有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。