尝试诊断导致 Rails 应用程序后面运行的 MongoDB 服务器间歇性锁定的原因。希望有人能识别图表中的波峰和波谷模式,其特征如下:
- opcounter-下降到20%(与典型水平相比)
- btree - 丢弃类似数量
- 锁定百分比 - 从平均 10% 左右增加到最终达到 100%
- 连接数 - 活动期间略有增加
- 排队——主要是读者人数激增,但在活动中间也有一个作者
- 游标 - 活动期间游标数量明显从 5 激增至 12
- 网络 - 网络 I/O 急剧下降至事件发生前的约 30%
- 页面错误 - 活动期间页面错误明显增多,活动前后页面错误明显减少
- 事件期间服务器磁盘 I/O 正常
该设置包括 1 个主服务器和 3 个辅助服务器,它们在 rackspace VM 上运行。所有服务器均具有 16GB RAM(最近从 8GB 增加到 16GB),总数据和索引大小约为 19GB。最近升级到 2.4.10。
目前未使用分片。
可在此处查看图表: https://dl.dropboxusercontent.com/u/54771521/MongoDB-Event.png (抱歉,目前还不允许发布内嵌图片……)
已启用分析功能,但未显示任何相关的慢速查询。我们有大量可用的日志信息(MMS、New Relic、应用程序日志、mongostat),但希望得到一些建议,以便我们了解首先从哪里开始查找,以加快解决问题的速度。
答案1
您是否查看过是否达到了打开文件数限制?我以前遇到过这种情况,不得不增加此值来帮助缓解问题。如果您正在分片,当所选分片键不能很好地分散记录时,我也看到过这种情况。