Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 了解“的服务器状态”;mem";_Mongodb_Memory Mapped Files - Fatal编程技术网

Mongodb 了解“的服务器状态”;mem";

Mongodb 了解“的服务器状态”;mem";,mongodb,memory-mapped-files,Mongodb,Memory Mapped Files,查看serverStatus命令,我看到以下数据 >db.runCommand( { serverStatus: 1} ) ... "mem" : { "bits" : 64, "resident" : 2138, // Mongo uses 2 GB RAM "virtual" : 33272, "supported" : true,

查看
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建议

如果我理解正确,那么16.4GB的Mongo文档/索引是内存映射的。由于Mongo只使用2GB的RAM,因此每当Mongo需要访问2GB之外的地址时,Mongo都需要在磁盘上获取地址的内容,然后将其加载到内存中


这是我的解释吗?工作集必须适合RAM的主要原因吗?

不必这样做,但如果您希望不进行磁盘读取、页面抖动和交换,那么您需要确保我如何知道是否需要磁盘读取?对于本例,我需要读取与我的查询匹配的所有文档的
\u id
(仅使用索引)。我不能使用覆盖索引,因为索引中的一个字段是子文档。