温馨提示×

Ubuntu MongoDB配置内存如何设置

小樊
36
2025-11-30 23:51:56
栏目: 云计算

Ubuntu 上 MongoDB 内存设置指南

一 核心思路

  • 在 Ubuntu 上,MongoDB 默认使用 WiredTiger 存储引擎,其缓存由参数 storage.wiredTiger.engineConfig.cacheSizeGB 控制。该值用于限制 WiredTiger 能使用的内存上限;如果不显式设置,MongoDB 会按系统内存自动选择一个默认值(常见为系统总内存的较大比例)。修改该值需要编辑配置文件并重启服务。配置文件通常位于 /etc/mongod.conf

二 操作步骤

  1. 编辑配置文件
    使用编辑器打开默认配置文件:
    sudo nano /etc/mongod.conf
  2. 设置 WiredTiger 缓存大小
    在 storage 段下添加或修改 wiredTiger.engineConfig.cacheSizeGB。例如,将缓存限制为 2GB
    storage:
    wiredTiger:
    engineConfig:
    cacheSizeGB: 2
    说明:该值以 GB 为单位,请根据业务负载与系统可用内存合理设置。
  3. 保存并重启服务
    使配置生效:
    sudo systemctl restart mongod
  4. 验证配置是否生效
    连接 MongoDB Shell 并检查:
    mongo --eval “db.serverStatus().wiredTiger.cache[‘maximum bytes configured’]/1024/1024/1024”
    输出即为当前配置的缓存上限(单位 GB,注意浮点值)。

三 配置示例

  • 将 WiredTiger 缓存设置为 4GB
    storage:
    wiredTiger:
    engineConfig:
    cacheSizeGB: 4
  • 设置完成后重启:
    sudo systemctl restart mongod
  • 说明:YAML 对缩进敏感,请使用空格;修改配置后必须重启才能生效。

四 注意事项

  • 该缓存上限仅限制 WiredTiger 缓存,MongoDB 进程的总内存占用还会包含连接、文件系统缓存、聚合/排序等临时内存,可能高于 cacheSizeGB。
  • 不要将 cacheSizeGB 设置得过大,需为操作系统与其他进程预留充足内存,避免 OOM 或性能抖动。
  • 配置修改后如未生效,检查 YAML 缩进是否正确,并确认已重启服务;必要时查看日志:
    sudo systemctl status mongod
    tail -n50 /var/log/mongodb/mongod.log。

0