问题描述:服务器性能还想,3个服务器9个分片做的mongo集群,但最近发现了mongo的cpu会跳高,有时而且一个服务器上面只
有一个shard的存储远高于其他两个,cpu也主要是这个占用的,已经出现过两次shard3宕机影响了服务
排查过程:网上查了一些命令查看Mongo状态,没有慢查询的问题,之前单机也一直运行良好,主要发现了用db.currentOp()命令,secs_running/microsecs_running特别高,但是‘op’(操作)为none,这让我很苦恼,这样的情况不止一条,多条都是这样
{
“desc” : “ReplBatcher”,
“threadId” : “140228293953280”,
“active” : true,
“opid” : 11,
“secs_running” : 222744,
“microsecs_running” : NumberLong(“222744906283”),
“op” : “none”,
“ns” : “local.oplog.rs”,
“query” : {
},
“numYields” : 0,
“locks” : {
},
“waitingForLock” : false,
“lockStats” : {
“Global” : {
“acquireCount” : {
“r” : NumberLong(2)
}
},
“Database” : {
“acquireCount” : {
“r” : NumberLong(1)
}
},
“oplog” : {
“acquireCount” : {
“r” : NumberLong(1)
}
}
}
},
期待有大牛知道这样的问题,拜谢!!
谢谢大家关注,我找到问题了,还是因为配置分片的时候,shard共3个,只有一个在运行,没有设置成功,原来单机的mongo的cpu核数比较多,集群的话单个服务器cpu是少的,因为分配不均匀,都访问的是一个shard,我现在重新配置下,试一下效果,结果稍后发出来,上面说的secs_running/microsecs_running这个时间我猜测是互相备份的时间,长点也是正常的