mongodb配置檔案詳解,記憶體限制,使用者驗證 yaml格式
阿新 • • 發佈:2019-09-18
mongodb配置檔案詳解,記憶體限制,使用者驗證 yaml格式
2019年05月27日 17:18:30 西門小鳳 閱讀數 275更多
分類專欄: MongoDB
版權宣告:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。
本文連結:https://blog.csdn.net/weixin_43886133/article/details/90607193
mongodb 單節點配置檔案詳解
mongodb 3.0及以上版本基本都是使用 yaml 語法格式的配置檔案, 啟動 mongo 例項如果不是指定配置檔案或引數命令啟動, 會按照預設的引數啟動。
常用基本配置檔案引數
storage: # mongod 程序儲存資料目錄,此配置僅對 mongod 程序有效 dbPath: /data/mongodb/db 是否開啟 journal 日誌持久儲存,journal 日誌用來資料恢復,是 mongod 最基礎的特性,通常用於故障恢復。64 位系統預設為 true,32 位預設為 false,建議開啟,僅對 mongod 程序有效。 journal: enabled: true # 儲存引擎型別,mongodb 3.0 之後支援 “mmapv1”、“wiredTiger” 兩種引擎,預設值為“mmapv1”;官方宣稱 wiredTiger 引擎更加優秀。 engine: mmapv1 systemLog: # 日誌輸出目的地,可以指定為 “file” 或者“syslog”,表述輸出到日誌檔案,如果不指定,則會輸出到標準輸出中(standard output) destination: file # 如果為 true,當 mongod/mongos 重啟後,將在現有日誌的尾部繼續新增日誌。否則,將會備份當前日誌檔案,然後建立一個新的日誌檔案;預設為 false。 logAppend: true # 日誌路徑 path: /var/log/mongodb/mongod.log net: # 指定埠 port: 27017 # 繫結外網 op 多個用逗號分隔 bindIp: 0.0.0.0 maxIncomingConnections: 10000
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
記憶體優化相關的配置
MongoDB 在使用過程中, 記憶體佔用會越來越大, 甚至達到危險的狀態, 而且會一直保持最高狀態,
官網上有相關的內容:https://docs.mongodb.com/v3.4/core/wiredtiger/index.html
以下根據官網, 增加限制記憶體的配置, 啟動mongo使用配置檔案啟動
storage: dbPath: /data/mongodb/db journal: enabled: true engine: wiredTiger # 如下配置僅對 wiredTiger 引擎生效(3.0 以上版本) wiredTiger: # wiredTiger 快取工作集(working set)資料的記憶體大小,單位:GB # 此值決定了 wiredTiger 與 mmapv1 的記憶體模型不同,它可以限制 mongod 對記憶體的使用量,而 mmapv1 則不能(依賴於系統級的 mmap)。預設情況下,cacheSizeGB 的值為假定當前節點只部署一個 mongod 例項,此值的大小為實體記憶體的一半;如果當前節點部署了多個 mongod 程序,那麼需要合理配置此值。如果 mongod 部署在虛擬容器中(比如,lxc,cgroups,Docker)等,它將不能使用整個系統的實體記憶體,則需要適當調整此值。預設值為實體記憶體的一半。 engineConfig: cacheSizeGB: 5 systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log net: port: 27017 bindIp: 0.0.0.0 maxIncomingConnections: 10000
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
新增使用者認證
開啟使用者認證前需要建立一個root使用者 如:
use admin
db.createUser({
user:"root",
pwd:"root123",
roles:[
{
role:"userAdminAnyDatabase",
db:"admin"
}
]
})
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
然後在配置檔案中新增如下配置資訊
security:
authorization: enabled
- 1
- 2
然後重啟mongo, 不然使用者認證不生效, 重啟後就可以建立其