Mongodb Mongo`touch`命令出现意外结果
使用11GB工作集(Mongodb Mongo`touch`命令出现意外结果,mongodb,Mongodb,使用11GB工作集(db.records.totalSize()),我运行了touch命令,以便让Mongo在我的16GB RAM盒上使用尽可能多的内存。在运行touch之前,serverStatus命令显示Mongo的mem.resident等于5800(大约6GB RAM) 但是,在运行touch之后,Mongo使用的内存量大致相同 "mem" : { "bits" : 64, "resident" : 5821, /* only a
db.records.totalSize()
),我运行了touch
命令,以便让Mongo在我的16GB RAM盒上使用尽可能多的内存。在运行touch之前,serverStatus
命令显示Mongo的mem.resident
等于5800(大约6GB RAM)
但是,在运行touch之后,Mongo使用的内存量大致相同
"mem" : {
"bits" : 64,
"resident" : 5821, /* only a 21 MB increase */
"virtual" : 29010,
"supported" : true,
"mapped" : 14362,
"mappedWithJournal" : 28724
},
为什么
touch
命令几乎没有增加Mongo使用的RAM数量(mem.resident)?MongoDB.serverStatus()命令报告驻留内存的方式是通过计算mongod进程实际访问的物理RAM中的页面数
这意味着,当您的集合和索引被读入RAM时,它们不会显示在“res”值中,直到您开始实际查询它
您可以通过查看mongod进程有多少RAM(不是虚拟内存)来验证数据是否已读入RAM(如果之前确实很冷)。MongoDB.serverStatus()命令报告驻留内存的方式是通过计算mongod进程实际访问了物理RAM中的多少页 这意味着,当您的集合和索引被读入RAM时,它们不会显示在“res”值中,直到您开始实际查询它 您可以通过查看mongod进程有多少RAM(而不是虚拟内存)来验证数据是否被读入了RAM(如果之前确实很冷的话)
"mem" : {
"bits" : 64,
"resident" : 5821, /* only a 21 MB increase */
"virtual" : 29010,
"supported" : true,
"mapped" : 14362,
"mappedWithJournal" : 28724
},