在Debian系統上配置MongoDB時,合理設置內存可以顯著提升數據庫的性能。以下是一些關鍵的配置技巧:
sudo apt update && sudo apt upgrade -y
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [archamd64,arm64] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt update
sudo apt install -y mongodb-org
/etc/mongod.conf:sudo vim /etc/mongod.conf
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27017
bindIp: 0.0.0.0 # 允許所有IP訪問,生產環境中請限制IP
replication:
replSetName: rs0 # 副本集名稱
sudo systemctl start mongod
sudo systemctl enable mongod
mongo --host your_primary_ip --port 27017
在Mongo shell中初始化副本集:
rs.initiate({_id : rs0, members : [{_id : 0, host : primary_ip:27017}, {_id : 1, host : secondary_ip:27017}, {_id : 2, host : secondary_ip:27017}]})
設置WiredTiger緩存大小:
在 mongod.conf 文件中,設置 storage.wiredTiger.engineConfig.cacheSizeGB 參數來指定MongoDB使用的內存大小。例如,將緩存大小設置為服務器總內存的70%:
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 4 # 根據服務器內存調整
保存配置文件并重啟MongoDB服務:
sudo systemctl restart mongod
操作系統內存限制:
為了確保MongoDB可以使用我們設置的內存大小,需要配置操作系統的內存限制。對于Linux系統,可以通過修改 /etc/security/limits.conf 文件來設置內存限制:
sudo nano /etc/security/limits.conf
添加或修改以下行:
mongodb soft nofile 64000
mongodb hard nofile 64000
mongostat 和 mongotop 實時監控數據庫性能。啟用身份驗證:
在 /etc/mongod.conf 文件中啟用身份驗證:
security:
authorization: enabled
創建管理員用戶:
mongo -u admin -p --authenticationDatabase admin
db.createUser({
user: "myUserAdmin",
pwd: "myPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
配置SSL/TLS:生成SSL證書和密鑰,然后在 /etc/mongod.conf 中配置:
net:
ssl:
mode: requireSSL
PEMKeyFile: /path/to/mongodb.pem
CAFile: /path/to/ca.pem
重啟MongoDB服務:
sudo systemctl restart mongod