1. 使用MongoDB自带命令行工具
mongostat
,默认每秒刷新一次数据。mongotop
,同样支持实时刷新。mongo --eval 'db.runCommand({ serverStatus: 1 })'
执行,返回详细的服务器状态信息(如连接数、锁等待时间、缓存命中率、复制延迟等),是诊断性能瓶颈的核心工具。db.currentOp()
,可过滤$all
或特定状态的请求。2. 利用图形化管理工具
mongosh
连接实例即可使用,界面友好适合新手。3. 配置第三方监控系统
mongodb_exporter
采集MongoDB指标(如ops、mem、network),存储到Prometheus时间序列数据库,再用Grafana创建仪表板实现可视化。适合需要自定义监控和告警的场景。4. 分析日志文件
/var/log/mongodb/mongod.log
,使用sudo tail -f /var/log/mongodb/mongod.log
实时跟踪日志,关注ERROR
、WARNING
级别的信息(如连接失败、磁盘空间不足),及时排查问题。/etc/mongod.conf
中配置operationProfiling.slowOpThresholdMs
(如设置为100ms),记录执行时间超过阈值的查询,通过db.currentOp({ "secs_running": { "$gte": 10 } })
或日志分析工具(如ELK Stack)定位慢查询。5. 监控系统资源使用
free -m
查看内存使用情况(关注MongoDB缓存占用)、iostat
或vmstat
监控磁盘I/O(关注写入延迟)、top
或htop
查看CPU使用率(关注查询密集型操作),确保系统资源充足。