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使用率(關注查詢密集型操作),確保系統資源充足。