1 MongoDB 慢查询
db.setProfilingLevel(1,100)
复制
for (var i=1; i<=300000; i++ ) db.userinfo.save({userid:i,username:'a'});
db.userinfo.find({"userid" : 29998}).explain()
复制
2022-04-15T13:44:13.418+0800 I COMMAND [conn4] command martin.userinfo appName: "MongoDB Shell" command: find { find: "userinfo", filter: { userid: 29998.0 }, lsid: { id: UUID("7529eb75-cffa-4164-a8d4-e4730d735c2b") }, $db: "martin" } planSummary: COLLSCAN keysExamined:0 docsExamined:300000 cursorExhausted:1 numYields:2343 nreturned:1 queryHash:37A12FC3 planCacheKey:37A12FC3 reslen:161 locks:{ ReplicationStateTransition: { acquireCount: { w: 2344 } }, Global: { acquireCount: { r: 2344 } }, Database: { acquireCount: { r: 2344 } }, Collection: { acquireCount: { r: 2344 } }, Mutex: { acquireCount: { r: 1 } } } storage:{} protocol:op_msg 142ms
复制
command 表示使用的命令; planSummary 表示执行计划; COLLSCAN 表示全表扫描; COLLSCAN 中的 keysExamined 表示是否走索引; COLLSCAN 中的 docsExamined 表示扫描文档数(类似MySQL的扫描行数); locks 锁相关信息; locks 中的 Database 表示库级别的锁情况; locks 中的 Collection 表示表级别的锁情况; protocol:op_msg 142ms 表示执行时间 142 毫秒。
pip3 install mtools
复制
/usr/local/python3/bin/mloginfo --queries data/mongo4/logs/mongod.log
复制
2 mongostat 排查
另外可以考虑使用 mongostat 进行排查,它的输出结果如下:
mongostat --host 192.168.150.232:27001
复制

insert、query、update、delete、getmore、command 表示最近1秒这类操作的次数,观察这几个字段的值是否比平时高很多; dirty 表示脏数据(未刷盘的数据)占总内存数据的比例,仅针对 WiredTiger 存储引擎,如果该值过高,可能会阻塞新请求; used WiredTiger 存储引擎内存使用率,如果内存使用率过高,需要判断是否需要增加内存; flushes 表示最近1秒数据刷新到磁盘的次数,仅针对 WiredTiger 存储引擎; vsize 表示使用了多少虚拟内存; res 表示实际使用的内存大小,如果内存使用的比较大,需要确定是否需要增加内存; qrw 表示读写等待的队列长度; arw 执行读写操作的活跃客户端数,看是否是短时间活跃连接数突增导致的响应变慢; net_in、net_out 进出流量,通过进出流量同样可以判断是否有访问量突增的情况; conn 连接数; set 副本集的名称; repl 复制的状态; time 当前时间。
3 mongotop 排查
mongotop --host 192.168.150.232:27001
复制
其中:
ns 表示数据库命名空间; total、read、write 具体操作花费的时间。
今天的内容就到这里,在后面的内容,我们会聊一下从 0 到 1 搭建 MongoDB 监控系统。欢迎关注。
欢迎加入数据库交流群讨论,入群请添加下方群秘微信,备注“进群”,等待群秘邀你入群。


文章转载自悦专栏,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
国内独家|阿里云首发MongoDB 8.0,性能提升“快”人一步
阿里云瑶池数据库
213次阅读
2025-04-24 09:53:13
腾讯云与 MongoDB 续签战略合作协议
腾讯云
131次阅读
2025-04-14 09:59:46
OceanBase 单机版可以大批量快速部署吗? YES
AustinDatabases
60次阅读
2025-04-21 10:35:14
鸿门宴讲PostgreSQL -- 被拉去央企救场一天
AustinDatabases
54次阅读
2025-04-24 09:53:40
知识点 | 主流的开源协议有哪些?
戏说数据那点事
51次阅读
2025-04-21 10:35:19
DBA 有心眼,难搞的SQL实际案例分析--都是别人的错
AustinDatabases
44次阅读
2025-04-16 10:33:49
打破DBA的局限:像架构师一样思考,提升你的技术价值-- 访蚂蚁金服P9 朱春茂
AustinDatabases
42次阅读
2025-04-28 10:18:46
MongoDB “升级项目” 大型连续剧(2)-- 到底谁是"der"
AustinDatabases
37次阅读
2025-04-23 11:19:10
MongoDB增删改查操作
鲁鲁
36次阅读
2025-04-14 22:41:51
DBA 怎么变得更强-应对架构师提出高并发问题?
AustinDatabases
35次阅读
2025-04-28 10:18:45