在Linux上高效配置MongoDB涉及多個步驟,包括安裝、配置、優化和啟動服務。以下是一個詳細的指南:
首先,使用包管理器安裝MongoDB。例如,在Ubuntu/Debian系統上使用apt
:
sudo apt-get update
sudo apt-get install -y mongodb-org
在CentOS/RHEL系統上使用yum
:
sudo yum update
sudo yum install -y mongodb-org
sudo mkdir -p /var/lib/mongodb
sudo mkdir -p /var/log/mongodb
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb
編輯/etc/mongod.conf
文件,設置以下參數:
dbPath
: 數據存儲路徑,例如 /var/lib/mongodb
logPath
: 日志文件路徑,例如 /var/log/mongodb/mongod.log
net.port
: 監聽端口,例如 27017
net.bindIp
: 綁定IP地址,例如 0.0.0.0
(允許所有IP訪問)security.authorization
: 啟用認證,例如 enabled
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
net:
bindIp: 0.0.0.0
port: 27017
security:
authorization: enabled
編輯~/.bashrc
或/etc/profile
文件,添加MongoDB的可執行文件目錄到系統的環境變量中:
export PATH=/usr/local/mongodb/bin:$PATH
使修改立即生效:
source ~/.bashrc
啟動MongoDB服務并設置為開機自啟:
sudo systemctl start mongod
sudo systemctl enable mongod
連接到MongoDB并驗證配置:
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
如果返回結果中包含 "authenticated": false
,則表示MongoDB未啟用認證;如果包含 "authenticated": true
,則表示認證已啟用。
調整以下內核參數:
進程和線程管理:
echo '95000' /proc/sys/kernel/sched_rt_runtime_us
echo '1000000' /proc/sys/kernel/sched_rt_period_us
內存管理:
echo 1 /proc/sys/vm/nr_hugepages
文件描述符:
ulimit -n 64000
編輯MongoDB的配置文件/etc/mongod.conf
,進行以下調整:
storage.dbPath
: 數據存儲路徑storage.journal.enabled
: 啟用日志systemLog.destination
: 日志文件路徑net.port
: 監聽端口net.bindIp
: 綁定IP地址replication.replSetName
: 副本集名稱sharding.clusterRole
: 分片角色使用MongoDB的Profiling功能監控性能:
db.setProfilingLevel(2)
db.system.profile.find().sort({ ts: -1 }).limit(5)
使用htop
進行資源監控。
為經常用于查詢的字段創建索引:
db.collection.createIndex({ field: 1 })
如果數據量很大,可以考慮使用MongoDB的分片功能將數據分布在多個服務器上。
通過以上步驟,您可以在Linux上高效配置和優化MongoDB,確保其高性能和可靠性。