2015-11-23 72 views
4

最近我遇到了一个问题,即每秒从磁盘读取的操作数增加了〜1000倍(频繁出现峰值),并且达到了AWS中的预置IOPS限制,从而减慢了一切。有没有办法看到MongoDB的缓存中有什么,什么不是?

我最初的想法是,有一些东西将数据大量写入MongoDB中,将预计会在缓存中的数据驱逐回磁盘。

有没有什么方法可以明确地知道缓存中的内容,而不是打开和关闭可能导致此问题的各种功能?

以一种更具体到我的问题的方式表述它 - 对于我来说,找出为什么应该在内存中的数据突然不是一个最佳方式。

编辑: 我的设置的详细信息 - 这是一个副本与mongodb 3.0.6与WiredTiger作为存储引擎。其中收集蒙戈过程将时间花在此命令显示:

+0

如果您告诉我们您正在运行的MongoDB的版本,它可能会有所帮助。 –

+0

现在添加它,多谢提及 – varunkvv

+0

如果你的内存利用率大概在85%或更多,你可以确定工作集没有完成。 –

回答

1

您可以分析使用这些有趣ootb工具:

  1. mongotopoptional_secs。它还显示了读取和写入所耗费的时间。
    • 要点: 非常高阅读时间一般是指不使用索引。 异常高时间可能是由于需要保持索引而插入。

  • mongostat:(像iostat)告诉我们蒙戈DB的IO统计信息。
    • 要点:idx_miss % - 如果程序使用索引,错过指数(内存)率意味着程序已去磁盘搜索。
  • 相关问题