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使用率(关注查询密集型操作),确保系统资源充足。