1. 检查MongoDB服务状态
使用sudo systemctl status mongod命令确认MongoDB服务是否处于运行状态。若服务未启动,可通过sudo systemctl start mongod启动服务;若需开机自启,执行sudo systemctl enable mongod。
2. 查看MongoDB日志文件
MongoDB的日志文件默认位于/var/log/mongodb/mongod.log,通过sudo tail -f /var/log/mongodb/mongod.log实时查看日志,或使用grep命令搜索特定错误关键词(如“error”“failed”),快速定位启动失败、连接问题或查询异常的具体原因。
3. 确认配置文件正确性
MongoDB的主配置文件为/etc/mongod.conf,需重点检查以下关键配置项:
storage.dbPath:数据存储目录是否存在且路径正确;systemLog.path:日志文件路径是否有写入权限;net.bindIp:绑定的IP地址(如0.0.0.0允许远程访问,127.0.0.1仅本地访问);net.port:监听端口(默认27017)是否被占用或修改。sudo systemctl restart mongod重启服务使变更生效。4. 检查数据目录与权限
MongoDB的数据目录(由storage.dbPath指定,默认为/var/lib/mongodb)需满足:
sudo mkdir -p /var/lib/mongodb创建);mongodb(通过sudo chown -R mongodb:mongodb /var/lib/mongodb设置);sudo chmod -R 755 /var/lib/mongodb确保MongoDB进程可读写)。5. 验证端口与网络配置
使用sudo netstat -tulnp | grep 27017(或ss -tulnp | grep 27017)检查MongoDB默认端口(27017)是否被监听。若端口被占用,需停止占用进程或修改net.bindIp配置;若需远程访问,需确保防火墙允许该端口流量(sudo ufw allow 27017)。
6. 使用内置工具诊断性能
db.collection.find().explain("executionStats")分析查询计划,判断是否使用了索引、查询效率是否低下。7. 检查系统资源使用情况
使用top、htop或vmstat命令监控系统资源:
df -h显示磁盘空间不足)会影响数据读写速度。8. 优化配置参数
根据系统资源调整MongoDB配置文件(/etc/mongod.conf)中的关键参数:
storage.wiredTiger.engineConfig.cacheSizeGB:设置WiredTiger存储引擎的缓存大小(建议为系统内存的50%-70%);net.maxIncomingConnections:调整最大连接数(默认10000,可根据并发需求修改);operationProfiling.mode:开启慢查询分析(设为“slowOp”),并设置阈值(如slowOpThresholdMs: 100,记录执行时间超过100毫秒的查询)。9. 排查常见特定问题
ping或telnet测试);explain()分析查询计划,添加缺失的索引(如db.collection.createIndex({field: 1})),避免全表扫描;rs.status())、oplog日志(确认数据同步情况),确保写入操作的write concern设置正确(如{w: "majority"})。