我使用Mongo 2.4.9,我有一個副本集爲三個節點。 我已執行db.serverStatus()MEM和看到的映射該尺寸是非常高的,47GB:MongoDB:大尺寸的映射內存
db.serverStatus().mem
{
"bits" : 64,
"resident" : 266,
"virtual" : 10149,
"supported" : true,
"mapped" : 47402,
"mappedWithJournal" : 65730
}
結果db.stats的(1024)
{
"db" : "xxxxx",
"collections" : 7,
"objects" : 670488,
"avgObjSize" : 2890.6140721385023,
"dataSize" : 1892697,
"storageSize" : 2273304,
"numExtents" : 49,
"indexes" : 42,
"indexSize" : 399378,
"fileSize" : 10416128,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"ok" : 1
}
在兆字節
"dataSize" : 1848mb
"storageSize" : 2220mb
"fileSize" : 10172mb
工作集信息:
"workingSet" : {
"note" : "thisIsAnEstimate",
"pagesInMemory" : 152599,
"computationTimeMicros" : 31143,
"overSeconds" : 1728
}
大小(Mb)= 152599 * 4kb - >轉換爲Mb = 596 Mb
我的問題是爲什麼映射內存的大小是fileSize的4,2倍並且比storageSize或dataSize大15159倍? 映射內存內存繼續增長緩慢。
注: OS:紅帽企業Linux服務器版本5.7(Tikanga) 物理內存:3892Mb
我讀這article但還是不明白,爲什麼映射內存的大小,使大考慮到足夠小的實際數據量(文件大小)。
謝謝。
感謝您的快速響應。你是對的,serverStatus命令返回所有數據庫的信息。 我有以下數據庫: >節目數據庫 27017(空) 管理(空) 配置(空) 當地24.06640625GB 測試(空) MYDB 9.94921875GB oplog.rs集合的大小是23386Mb =〜23gb – user1932034
我有下一個問題:我可以安全地刪除oplog集合來更改init大小嗎?映射內存的大尺寸是否會影響查詢的性能,但不考慮物理內存的大小(映射32gb>物理4gb)? oplog coll的數據是否是工作集的一部分?謝謝 – user1932034
請參閱我的回答更新 –