在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服務。