MongoDB在Ubuntu上的内存管理主要通过配置存储引擎参数和系统设置实现,核心要点如下:
- 存储引擎选择:默认使用WiredTiger引擎,支持文档级锁和压缩,适合大多数场景。
- 缓存大小配置:通过修改
/etc/mongod.conf中storage.wiredTiger.engineConfig.cacheSizeGB参数设置缓存大小,建议为系统可用内存的50%-75%,避免超过80%。 - 内存限制方式:
- 配置文件永久生效:修改
mongod.conf后重启服务。 - 临时限制:通过
ulimit -v命令设置虚拟内存上限(仅对当前会话有效)。
- 配置文件永久生效:修改
- 优化措施:
- 合理创建索引,避免全表扫描,使用覆盖查询减少内存占用。
- 分页查询、限制返回字段,控制单次查询的数据量。
- 定期清理无用数据,使用
db.reIndex()重建索引。
- 监控工具:通过
db.serverStatus().wiredTiger.cache查看缓存使用情况,或使用mongostat/mongotop监控性能。
参考来源: