gpt4 book ai didi

java - 解释 mongostat 中的 mongo 故障指标

转载 作者:可可西里 更新时间:2023-11-01 09:12:35 27 4
gpt4 key购买 nike

我对 mongostat 中的故障指标有疑问。我在 ubuntu 上运行 mongo 2.0,在 raid-0 配置中有 2 个磁盘(每个 32G)。

加载到 mongo 500 万用户配置文件的测试。我在单线程中执行该过程并使用插入(批量 1000 个条目)。

当我第一次 设置 mongo 并将配置文件加载到其中时,我在加载过程中看到 mongostat 中的许多错误(2,5,甚至 15)。

然后我再次运行加载:首先我删除旧集合,然后运行加载。以下时间几乎所有时间都是 faults=0

这是为什么?

最佳答案

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

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

如果您改为删除数据库,它会带走文件,因此下次您应该会看到页面错误。

关于java - 解释 mongostat 中的 mongo 故障指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11066438/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com