Mongodb

MongoDB 未使用 Windows 伺服器中的所有記憶體

  • May 26, 2016

我有一個在 Windows 中執行的獨立 MongoDB 實例。它最近遇到了緩慢,我的故障排除發現了以下症狀。

  1. 緩慢通常發生在針對大量集合的全文搜尋查詢之後。我猜這是因為它將集合中的許多頁面從磁碟交換到記憶體中,因此來自其他集合的數據被擠出記憶體。
  2. 伺服器記憶體使用上限約為 55%。伺服器 (Win2012) 有 32GB 的記憶體,但 MongoDB 並沒有嘗試使用超過 16GB 的記憶體。

我已經看到了一些關於限制 MongoDB 記憶體使用的問答,但沒有看到如何鼓勵 MongoDB 變得更加貪婪。

有人有類似問題的經驗嗎?

  • MongoDB:3.2.0
  • 儲存引擎:wiredTiger
  • 作業系統:Win2012
  • 記憶體:32GB

謝謝

想通了為什麼,這裡是解釋。

WiredTiger 的預設記憶體大小限制為 60%RAM - 1GB,應該在具有大記憶體的系統中被覆蓋。

請檢查您的索引大小必須適合 RAM,而且對於 WiredTiger,MongoDB 會同時使用 WiredTiger 記憶體和文件系統記憶體。

對於具有高達 10 GB RAM 的系統,新的預設設置小於或等於 3.0 預設設置(對於 MongoDB 3.0,WiredTiger 記憶體使用 1 GB 或已安裝物理 RAM 的一半,以較大者為準)。

對於 RAM 超過 10 GB 的系統,新的預設設置大於 3.0 設置。

通過文件系統記憶體,MongoDB 自動使用 WiredTiger 記憶體未使用的所有空閒記憶體

https://docs.mongodb.com/manual/core/wiredtiger/

引用自:https://dba.stackexchange.com/questions/139245