我想知道mongo是如何拆分數據庫之間的可用內存的。我有多個數據庫在一個可變大小的mongod中運行,我想知道我的工作集將如何分配。我們假設我每天都會收集數據,這些數據將在一天之後訪問(所以我的用戶每天只查詢最後一天,而不回頭查看)。我的問題是我是非常可變大小的數據集和如此多變的工作集。這是具有以下設置:mongod工作集是如何在數據庫之間分區的
- DB1 - 尺寸100(45%)
- DB2 - 尺寸100(45%)
- DB3 - 尺寸10(5%)
- DB4 - 大小10(5%)
現在我想知道單個數據庫工作集將如何在內存中分區爲內存大小? 45/45/5/5?
所以在我的情況下,我有db1昨天晚上一起加載,感覺像分區不再是45/45/5/5但88/10/1/1(意思是db1工作集正在超越內存,值是任意的)。
如果是這樣的話,有沒有一種方法可以確保個人數據庫會保持內存空間?
這是否意味着在版本3.0和更高版本中,我不會必須「讓我的數據庫變暖」? – mcorbe 2015-02-10 17:00:30
3.0將mmap作爲默認存儲引擎(從2.6改進,但我的答案仍然適用)。可選的WiredTiger存儲引擎處理內存的方式非常不同 - 它擁有自己的緩存 - 但我不太瞭解它如何管理緩存以說明它在這種情況下的行爲。 – wdberkeley 2015-02-10 17:04:02
任何可能成爲mmap中的一個功能的可能性? – mcorbe 2015-02-11 09:30:51