在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,确保其高性能和可靠性。