在Linux系统上高效配置MongoDB涉及多个步骤,包括安装、配置、优化以及设置开机自启等。以下是详细的配置步骤:
sudo mkdir -p /var/lib/mongodb
sudo mkdir -p /var/log/mongodb
sudo chown -R $(whoami) /var/lib/mongodb
sudo chown -R $(whoami) /var/log/mongodb
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz
tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz
sudo mv mongodb-linux-x86_64-ubuntu1604-4.2.8 /usr/local/mongodb
echo 'export PATH=/usr/local/mongodb/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
sudo vim /etc/mongod.conf
在文件中添加以下内容:
dbpath=/var/lib/mongodb
logpath=/var/log/mongodb/mongod.log
logappend=true
port=27017
fork=true
auth=false # 可选,用于禁用认证
sudo mongod --config /etc/mongod.conf
sudo vim /etc/systemd/system/mongodb.service
在文件中添加以下内容:
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/local/mongodb/bin/mongod --config /etc/mongod.conf
Restart=always
[Install]
WantedBy=multi-user.target
重新加载systemd管理器配置并启动MongoDB服务:
sudo systemctl daemon-reload
sudo systemctl start mongodb
sudo systemctl enable mongodb
sudo sysctl -w vm.dirty_background_ratio=100
sudo sysctl -w vm.dirty_ratio=100
ulimit -n 20000
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
sudo vim /etc/mongod.conf
根据需要调整以下参数:
net.maxIncomingConnections
:调整最大 incoming connections 数。net.maxOutgoingConnections
:调整最大 outgoing connections 数。storage.wiredTiger.engineConfig.cacheSizeGB
:调整 WiredTiger 存储引擎的缓存大小。operationProfiling.mode
:开启操作分析以监控慢查询。replication.replSetName
:如果使用副本集,设置副本集名称。为经常用于查询的字段创建索引:
db.collection.createIndex({ field: 1 })
使用MongoDB自带的工具 mongostat
和 mongotop
监控数据库性能。还可以使用第三方工具如 Percona Monitoring and Management (PMM) 进行更详细的监控和诊断。
使用 mongodump
和 mongorestore
工具进行备份和恢复。
考虑升级到最新的稳定版本以获得性能改进和bug修复。
通过以上步骤,您可以在Linux环境下高效地配置和优化MongoDB服务。