在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