Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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
Java 解释mongostat中的mongo故障度量_Java_Mongodb - Fatal编程技术网

Java 解释mongostat中的mongo故障度量

Java 解释mongostat中的mongo故障度量,java,mongodb,Java,Mongodb,我有一个关于mongostat中的故障度量的问题。 我在ubuntu上运行Mongo2.0,有两个磁盘(每个32G),采用raid-0配置 该测试将加载到mongo的500万用户配置文件中。 我在单线程中完成这个过程,并使用insert(1000个条目) 当我第一次设置mongo并将其加载到配置文件中时,我在加载过程中看到mongostat中出现了许多故障(2、5甚至15) 然后我再次运行加载:首先我删除旧集合,然后运行加载。 以下时间故障几乎一直为0 为什么会这样?MongoDB通过内存映射文

我有一个关于mongostat中的故障度量的问题。 我在ubuntu上运行Mongo2.0,有两个磁盘(每个32G),采用raid-0配置

该测试将加载到mongo的500万用户配置文件中。 我在单线程中完成这个过程,并使用insert(1000个条目)

当我第一次设置mongo并将其加载到配置文件中时,我在加载过程中看到mongostat中出现了许多故障(2、5甚至15)

然后我再次运行加载:首先我删除旧集合,然后运行加载。 以下时间故障几乎一直为0


为什么会这样?

MongoDB通过内存映射文件机制将内存管理转发给操作系统。基本上,这种机制允许程序打开比已安装RAM数量大得多的文件。当程序试图访问该文件的一部分时,操作系统会查看该部分(页面)是否在RAM中。如果不是,则会发生,并从磁盘加载该页faults/smetric准确地显示了这一点:每秒发生多少页面错误

现在,当您启动mongo并将数据加载到其中时,数据文件不会映射到内存中,它们必须从磁盘加载(页面错误)。删除集合时,它将在逻辑上被删除,但相应的物理文件不会被删除,并将被重新使用。因为它们已经在RAM中,所以没有页面错误

如果您删除一个数据库,它会带走文件,所以下次您应该会看到页面错误