在CentOS上优化MongoDB配置涉及多个方面,包括安装、配置、安全性和性能调优等。以下是一个详细的指南:
设置MongoDB的YUM仓库:
创建一个.repo文件来定义如何从官方MongoDB存储库下载软件包。
sudo vi /etc/yum.repos.d/mongodb-org-7.0.repo 添加以下内容:
[mongodb-org-7.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc 安装MongoDB:
sudo yum install -y mongodb-org 创建必要的目录:
为MongoDB的数据和日志创建相应的目录。
sudo mkdir -p /data/mongodb/data sudo mkdir -p /data/mongodb/log sudo chown -R mongod:mongod /data/mongodb 编辑配置文件:
编辑MongoDB的主要配置文件 /etc/mongod.conf。
sudo vi /etc/mongod.conf 根据需要调整以下参数:
storage.dbPath: 数据目录路径,例如 /data/mongodb/data。systemLog.path: 日志文件路径,例如 /data/mongodb/log/mongod.log。net.bindIp: 绑定IP地址,例如 0.0.0.0 以监听所有网络接口。net.port: 端口号,例如 27017。processManagement.fork: 设置为 true 以启用守护进程模式。security.authorization: 设置为 enabled 以启用访问控制。storage: dbPath: /data/mongodb/data systemLog: path: /data/mongodb/log/mongod.log net: bindIp: 0.0.0.0 port: 27017 processManagement: fork: true security: authorization: enabled 启动MongoDB服务:
sudo systemctl start mongod 设置开机自启动:
sudo systemctl enable mongod SELinux配置(可选):
如果启用了SELinux,可能需要调整SELinux策略以允许MongoDB正常运行。
sudo semanage fcontext -a -t mongod_db_t "/data/mongodb/data(/.*)?" sudo restorecon -Rv /data/mongodb 环境变量(可选):
将MongoDB的二进制文件路径添加到系统的环境变量中。
echo 'export PATH=/usr/local/mongodb/bin:$PATH' >> /etc/profile source /etc/profile 调整WiredTiger缓存大小:
通过设置 eviction_trigger 和 eviction_target 参数来控制WiredTiger缓存的使用量。
db.adminCommand({ "setParameter": 1, "wiredTigerEngineRuntimeConfig": "eviction=(threads_min=4,threads_max=4,eviction_trigger=95,eviction_target=80)" }) 限制脏页数量:
通过设置 eviction_dirty_trigger 和 eviction_dirty_target 参数来限制缓存中的脏数据数量。
db.adminCommand({ "setParameter": 1, "wiredTigerEngineRuntimeConfig": "eviction=(threads_min=4,threads_max=4,eviction_trigger=20,eviction_dirty_target=5)" }) 驱逐线程数量:
通过设置 eviction=(threads_min=4,threads_max=20) 来控制驱逐线程的数量。
db.adminCommand({ "setParameter": 1, "wiredTigerEngineRuntimeConfig": "eviction=(threads_min=4,threads_max=20)" }) 启用身份验证:
编辑MongoDB配置文件,将 security.authorization 设置为 enabled。
security: authorization: enabled 重启MongoDB服务以应用配置变更。
sudo systemctl restart mongod 创建管理员用户:
连接到MongoDB shell并创建管理员用户。
mongo use admin db.createUser({ user: "admin", pwd: "your_password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }) 通过以上步骤,你可以在CentOS上优化MongoDB配置,确保其性能、安全性和可靠性。更多详细内容,请参考官方文档或其他资源获取更多帮助。