看一下serverStatus
命令,我看到以下数据。
>db.runCommand( { serverStatus: 1} )
...
"mem" : {
"bits" : 64,
"resident" : 2138, // Mongo uses 2 GB RAM
"virtual" : 33272,
"supported" : true,
"mapped" : 16489, // equals db.coll.totalSize()
"mappedWithJournal" : 32978
},
Mongo建议使用working set size fit in RAM。
如果我理解正确,那么16.4 GB的Mongo文档/索引是内存映射的。由于Mongo只使用2 GB的RAM,每当Mongo需要访问2 GB以外的地址时,Mongo需要获取磁盘上的地址内容然后将它们加载到内存中?
这是我的解释是工作集必须适合RAM的主要原因吗?