项目场景:
配置管理系统[CMDB集群],wxxx1002,Unix服务器CPU利用率较高(实例:CPU),当前值:96.21,阈值:95 - 100 发生时间:07/xxx/2021 1x:28:00
问题描述:
MongoDB集群主节点所在的机器,CPU利用率长时间较高。
原因分析:
排查过程:
- 查询store-res中,pacific-impl.log。发现对应时间段内有较多pageSize为3000,10000的resObject查询。
- 基于查询条件到数据库中执行1中的查询语句,发现查询速度较快。
- 通过执行mongo命令db.currentOp()查询到mongoDB在objMessage集合中做了大量的query的操作,请求运行时间microsecs_running
为50000~80000ms,请求时间非常不合理. - 0708版本包含:补充增量数据遗漏的关系,为避免遗漏的数据被多次补充,这部分逻辑中包含了基于objData._id的查询。
ObjMessage dbOne = ServiceManager.getInstance().getObjMessageService().getByResObjectId(this.resObject.getId());
if(dbOne != null){
return;
}