key=value)啟動方式:mongod -f /etc/mongod.conf 或 mongod --config /etc/mongod.conf
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
logRotate: rename
verbosity: 0
quiet: false
storage:
dbPath: "/data/mongodb"
directoryPerDB: true
journal:
enabled: true
commitIntervalMs: 100
wiredTiger:
engineConfig:
cacheSizeGB: 8
journalCompressor: snappy
collectionConfig:
blockCompressor: snappy
indexConfig:
prefixCompression: true
processManagement:
fork: true
pidFilePath: "/var/run/mongodb/mongod.pid"
timeZoneInfo: "/usr/share/zoneinfo"
net:
port: 27017
bindIp: "127.0.0.1,10.0.0.1"
maxIncomingConnections: 65536
wireObjectCheck: true
ipv6: false
security:
authorization: "enabled"
keyFile: "/etc/mongodb/keyfile"
clusterAuthMode: "keyFile"
javascriptEnabled: false
operationProfiling:
slowOpThresholdMs: 100
mode: "slowOp"
replication:
replSetName: "rs0"
enableMajorityReadConcern: true
oplogSizeMB: 10240
| 分類 | 參數 | 推薦值/說明 |
|---|---|---|
| 存儲 | cacheSizeGB | 物理內存 50-60%(預留給 OS 文件系統緩存) |
| 存儲 | directoryPerDB | true(每庫獨立目錄,便於文件系統級備份/掛載) |
| 存儲 | journal.enabled | true(生產環境強制開啟,防止掉電丟數據) |
| 網絡 | bindIp | 內網 IP + 127.0.0.1,禁用 0.0.0.0 直連公網 |
| 網絡 | maxIncomingConnections | 65536(配合 ulimit -n,防止連接數耗盡) |
| 安全 | authorization | enabled(強制認證,構建 RBAC 權限體系) |
| 安全 | keyFile | 副本集/分片節點間內部認證,400 權限 |
| 性能 | slowOpThresholdMs | 100ms(慢查詢閾值,配合 Profiler 分析) |
| 複製 | oplogSizeMB | 10GB+(根據寫入量預留 24-48h 窗口) |
chown -R mongod:mongod /data/mongodb /var/log/mongodbvm.swappiness=1、transparent_hugepage=never、ulimit -n 64000/data/mongodb(XFS/ext4,noatime),WAL/Journal 可獨立 SSD。mongodb_exporter、Datadog、OPS Manager。mongodump + Oplog 增量,定期恢復演練。# 語法檢查
mongod --config /etc/mongod.conf --dryrun
# 運行時動態調整(部分配置)
db.adminCommand({setParameter: 1, slowOpThresholdMs: 200})
db.adminCommand({setParameter: 1, logVerbosity: 1})
規範的 YAML 配置是 MongoDB 穩定運行的基石,版本控制管理配置文件,變更走變更流程,做到有據可查、可追溯、可回滾。