温馨提示×

ubuntu mongodb配置内存怎么调

小樊
50
2026-10-07 16:45:13
栏目: 云计算

在 Ubuntu 上调整 MongoDB 的内存配置,通常有两种层面:操作系统层面和 MongoDB 自身配置层面。下面按常见场景说明。


一、MongoDB 自身内存相关配置(推荐先看这个)

MongoDB 主要使用内存做 WiredTiger 存储引擎缓存,通过 storage.wiredTiger.engineConfig.cacheSizeGB 控制。

1. 修改配置文件

配置文件一般在:

/etc/mongod.conf

编辑:

sudo nano /etc/mongod.conf

在 storage 下添加或修改:

storage:
  wiredTiger:
    engineConfig:
      cacheSizeGB: 2

表示 MongoDB 最多使用 2GB 内存做 WT 缓存
不设置时,默认是:(总内存 - 1GB) 的 50%

2. 重启 MongoDB

sudo systemctl restart mongod

二、查看当前内存使用情况

进入 mongo shell:

mongosh

执行:

db.serverStatus().memory

重点关注:

  • resident:常驻内存
  • virtual:虚拟内存
  • wiredTiger.cache

三、限制 MongoDB 总内存(系统层面)

MongoDB 没有“最大内存”参数,只能限制 WT 缓存 + 控制其他开销。

方法 1:用 systemd 限制(推荐)

编辑 service:

sudo systemctl edit mongod

加入:

[Service]
MemoryLimit=4G

然后:

sudo systemctl daemon-reload
sudo systemctl restart mongod

四、常见场景建议

1. 服务器只跑 MongoDB

  • 不设置 cacheSizeGB
  • 让 MongoDB 自动使用约 50% 内存

2. 和其他服务共存(如 Nginx / Java)

  • 显式设置 cacheSizeGB
  • 例如 8G 内存服务器:
cacheSizeGB: 3

3. 低内存 VPS(1–2G)

cacheSizeGB: 0.5

五、注意事项

  • MongoDB 不是纯内存数据库
  • 内存不足会导致:
    • 频繁磁盘 IO
    • 性能下降
  • swap 建议保留(不要完全关掉)

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • MongoDB 版本
  • 服务器内存大小
  • 是否和其他服务共用

我可以帮你给出精准配置示例。

0 踩