Mongodb
MongoDB 未使用 Windows 伺服器中的所有記憶體
我有一個在 Windows 中執行的獨立 MongoDB 實例。它最近遇到了緩慢,我的故障排除發現了以下症狀。
- 緩慢通常發生在針對大量集合的全文搜尋查詢之後。我猜這是因為它將集合中的許多頁面從磁碟交換到記憶體中,因此來自其他集合的數據被擠出記憶體。
- 伺服器記憶體使用上限約為 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 記憶體未使用的所有空閒記憶體