Linux 上 MongoDB 内存管理策略
一 核心机制与默认行为
二 配置 WiredTiger 缓存上限
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 4
修改后需重启 mongod 生效。也可在运行时动态调整(部分版本支持):db.adminCommand({ setParameter: 1, "wiredTigerEngineRuntimeConfig": "cache_size=2GB" })
建议将缓存上限控制在实例可用内存的合理比例(如不超过物理内存的50%~60%),为操作系统页缓存、连接与查询操作预留空间。若发现性能受限于缓存命中,再结合工作集大小适度上调。三 操作系统层面的优化
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
四 监控与调优动作
关键指标与阈值
db.runCommand({
setParameter: 1,
"wiredTigerEngineRuntimeConfig": "eviction=(threads_max=8,threads_min=4)"
})
查询与资源控制
架构层面扩展