Linux环境下监控MongoDB性能的常用方法
MongoDB提供了多组内置命令行工具,可直接获取实例性能数据,无需额外安装软件:
--host、--port指定实例地址,--username/--password认证后使用,适合观察短期性能波动。top命令,按集合维度展示读写时间分布(默认每秒更新),帮助定位慢查询或高负载集合。使用时需指定实例地址和认证信息。1表示记录执行时间超过100ms的查询),通过db.system.profile.find()查看慢查询详情,帮助优化查询语句。通过Linux系统自带工具,可间接监控MongoDB进程的资源消耗,快速识别资源瓶颈:
P键按CPU排序,M键按内存排序),适合快速查看进程资源使用趋势。iostat -x 1查看详细指标(重点关注%util(磁盘利用率)、await(平均I/O等待时间)),判断MongoDB是否受磁盘IO限制。vmstat 1每秒刷新,关注si/so(交换分区使用)、us/sy(用户/系统CPU占用)等指标。netstat -tulnp | grep mongod或ss -s查看,帮助排查网络瓶颈或异常连接。对于长期、全面的性能监控,推荐使用专业第三方工具,支持可视化、告警及历史数据分析:
mongodb_exporter(MongoDB专用指标采集器)抓取MongoDB指标(如mongodb_memory_usage_bytes、mongodb_operations_insert_total)。MongoDB日志记录了实例运行中的关键事件(如启动/关闭、慢查询、复制错误),通过分析日志可定位历史性能问题:
mongod.conf中设置systemLog参数(如destination: file、path: /var/log/mongodb/mongod.log、logAppend: true),开启日志持久化。slowOpThresholdMs设置阈值),可通过grep "Slow query" /var/log/mongodb/mongod.log筛选慢查询记录,结合explain()命令分析查询计划。