centos

centos系统mongodb内存如何配置

小樊
39
2025-11-03 13:45:44
栏目: 云计算

CentOS系统配置MongoDB内存的步骤与注意事项

1. 找到MongoDB配置文件

MongoDB的主配置文件通常位于/etc/mongod.conf,可通过以下命令确认路径:

sudo find / -name mongod.conf

使用文本编辑器(如nanovi)打开配置文件:

sudo nano /etc/mongod.conf

2. 调整WiredTiger存储引擎缓存大小(核心参数)

MongoDB默认使用WiredTiger存储引擎(MongoDB 3.2+版本),其内存使用主要由cacheSizeGB参数控制,该参数定义了WiredTiger缓存的最大内存占用(单位:GB)。
在配置文件的storage section下添加或修改以下内容(以设置4GB为例):

storage:
  wiredTiger:
    engineConfig:
      cacheSizeGB: 4  # 根据服务器内存调整,建议为系统内存的50%-70%(如64GB内存可设为48GB)

注意cacheSizeGB是控制WiredTiger缓存的关键参数,直接影响MongoDB的读写性能。

3. 可选:设置内存映射文件的最大大小(针对旧版本或特殊需求)

若需限制MongoDB进程的内存映射文件大小(如避免占用过多虚拟内存),可在setParameter section添加以下配置(单位:GB):

setParameter:
  wiredTigerEngineRuntimeConfig: "cacheSizeGB=4,memoryLimitGB=8"  # cacheSizeGB为WiredTiger缓存,memoryLimitGB为进程总内存限制

说明memoryLimitGB应大于等于cacheSizeGB,且不超过系统可用内存。

4. 关闭Hugepages(优化内存碎片)

Hugepages会导致内存碎片化,影响MongoDB性能。需在系统配置中关闭:
编辑/etc/sysctl.conf文件,添加以下内容:

vm.swappiness = 0       # 禁用交换分区(避免内存不足时频繁换页)
vm.nr_hugepages = 0     # 关闭Hugepages

保存后执行sudo sysctl -p使配置生效。

5. 调整系统级资源限制(可选但推荐)

为防止MongoDB进程占用过多内存导致系统崩溃,可通过limits.conf调整进程资源限制:
编辑/etc/security/limits.conf文件,添加以下内容:

* soft nofile 65536  # 单个进程可打开的最大文件数
* hard nofile 65536

保存后重新登录用户使配置生效。

6. 重启MongoDB服务使配置生效

修改配置文件后,需重启MongoDB服务:

sudo systemctl restart mongod

若重启失败,可通过journalctl -xe查看错误日志排查问题。

7. 验证内存配置是否生效

通过MongoDB Shell查看WiredTiger缓存状态,确认配置是否生效:

mongo --eval 'db.serverStatus().wiredTiger.cache'

输出结果中的bytes dirty(脏数据大小)、bytes valid(有效缓存大小)应小于等于配置的cacheSizeGB×1024³字节。

8. 内存配置注意事项

通过以上步骤,可在CentOS系统中完成MongoDB内存的配置与优化,提升数据库性能与稳定性。

0
看了该问题的人还看了