mongodb - 內存占用過高


發現異常

今天發現有一台服務器mongod占了5個多G內存 這個太誇張了
然后搜索了一下,發現是mongo優化讀寫效率時會占用內存

內存增加的原因

mongo為了優化他的讀寫效率,將內存當做緩存,所以你讀寫次數越多,緩存就越大。默認值:
從3.4開始,WiredTiger內部緩存默認使用較大的一個, 我用的是4.1
50%(RAM - 1 GB),或256 MB。
例如,我是8G內存,那么最大緩存0.5*(8-1)=3.5G,看到了么。。。mongo默認3.5G都是他的緩存。

解決

在配置中限制mongo的緩存大小, 引擎需要更換為wiredTiger 默認的mmapv1依賴於mmap不能指定
官方也聲稱wiredTiger更加優秀

storage:
  dbPath: /www/server/mongodb/data
  directoryPerDB: true

  journal:
    enabled: true
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM