MongoDB服务在进行定时任务操作时崩溃,查询日志发现崩溃时固定出现以下两条格式的记录:
command admin.$cmd command: isMaster { ismaster: 1 } numYields:0 reslen:189 locks:{} protocol:op_query 1600ms
serverStatus was very slow: { after basic: 600, after asserts: 1001, after backgroundFlushing:
1302, after connections: 1701, after dur: 2194, after extra_info: 3300, after globalLock: 3995,
after locks: 5002, after network: 5304, after opLatencies: 5600, after opcounters: 5799,
after opcountersRepl: 6104, after repl: 6500, after security: 6802, after storageEngine: 7500,
after tcmalloc: 8601, after wiredTiger: 32799, at end: 37100 }
从服务器的log来看,mongodb崩溃时进行了大量的读操作。
想请教各位大佬如何从这两条分析MongoDB服务崩溃的原因?
另外前一条让我很困惑。我们并没有为MongoDB设置副本集,为什么还会有isMaster的命令呢?
本问题及下方已被采纳的回答均来自云栖社区【Redis&MongoDB 社区大群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。
这两条日志跟你崩溃的原因无关。通常这两条指令来自你们的监控系统的定时采样,正常情况下应该是很快完成的。如果这两条指令都慢,就代表数据库处于很大的压力下。你要找的是什么原因导致的压力,以及崩溃前的最后时刻发生了什么问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。