mongodb慢日志分析

whatisma 2017-03-06 08:43:51
mongodb3.2采用1主2从副本集部署模式,db中数据500w不到,当然其他db也有同时在用。查询或更新时候偶尔就会很慢,好几秒或者上10秒,概率大概在3%左右。部署环境的cpu、内存、磁盘空间都足够的。
查看日志如下,发现都是【timeAcquiringMicros】这个值比较长,字面上看是获取锁花的时间,有没有大神帮忙看看这是什么问题?


 find{
find: "UserMsg",
filter: {
bizType: 1,
targetId: "-1",
isDel: 0,
groupId: 2,
createTime: {
$gte: newDate(1481069818000)
}
}
}planSummary: IXSCAN{
bizType: 1,
targetId: 1,
groupId: 1
}keysExamined: 31docsExamined: 31cursorExhausted: 1keyUpdates: 0writeConflicts: 0numYields: 0nreturned: 31reslen: 4795locks: {
Global: {
acquireCount: {
r: 2
},
acquireWaitCount: {
r: 1
},
timeAcquiringMicros: {
r: 603884
}
},
Database: {
acquireCount: {
r: 1
}
},
Collection: {
acquireCount: {
r: 1
}
}
}protocol: op_query607ms
...全文
527 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rucypli 2017-03-08
  • 打赏
  • 举报
回复
引用 2 楼 whatisma 的回复:
[quote=引用 1 楼 rucypli 的回复:] 把isDel,createTime这两个字段也加入到联合索引里面
这是为什么? createTime有个单独的索引,如果加到联合索引里面那按createTime查询岂不走不到索引了吗。[/quote] 让查询纯走索引 不影响createTime单独使用
whatisma 2017-03-08
  • 打赏
  • 举报
回复
引用 3 楼 rucypli 的回复:
[quote=引用 2 楼 whatisma 的回复:] [quote=引用 1 楼 rucypli 的回复:] 把isDel,createTime这两个字段也加入到联合索引里面
这是为什么? createTime有个单独的索引,如果加到联合索引里面那按createTime查询岂不走不到索引了吗。[/quote] 让查询纯走索引 不影响createTime单独使用[/quote] 会影响的吧,联合索引只能从前面开始命中,createTime不会是第一个索引key。 另外这个问题表现并不像是索引问题,因为出现概率也是3%。
rucypli 2017-03-07
  • 打赏
  • 举报
回复
把isDel,createTime这两个字段也加入到联合索引里面
whatisma 2017-03-07
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
把isDel,createTime这两个字段也加入到联合索引里面
这是为什么? createTime有个单独的索引,如果加到联合索引里面那按createTime查询岂不走不到索引了吗。

1,747

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧