2015-11-23 111 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 % - 如果程序使用索引,錯過指數(內存)率意味着程序已去磁盤搜索。
  • 相關問題