MongoDB在Ubuntu上的内存管理

MongoDB在Ubuntu上的内存管理主要通过配置存储引擎参数和系统设置实现,核心要点如下:

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

参考来源: