我对mongostat中的故障指标有疑问.我在ubuntu上运行mongo 2.0,在raid-0配置中运行2个磁盘(每个32G).
测试加载到mongo 500万用户配置文件.我正在单线程中执行该过程并使用insert(大量的1000个条目).
当我第一次设置mongo 并加载到配置文件中时,我会在加载过程中看到mongostat(2,5,甚至15)中的许多故障.
然后我再次运行加载:首先我放弃旧的集合,然后运行加载.以下几次故障= 0几乎所有时间.
这是为什么?
MongoDB通过内存映射文件机制将内存管理中继到操作系统.基本上,这种机制允许程序打开比安装的RAM大得多的文件.当程序试图访问该文件的一部分时,OS会查看该部分(页面)是否在RAM中.如果不是,则发生页面错误,并从磁盘加载该页面.faults/smongostat中的度量标准显示了这样:每秒发生多少页面错误.
现在,当您启动mongo并将数据加载到其中时,数据文件不会映射到内存中,而是必须从磁盘加载(页面错误).删除集合时,它会在逻辑上被删除,但相应的物理文件不会被删除并将被重用.由于它们已经在RAM中,因此没有页面错误.
如果删除数据库,它会获取带有它的文件,因此下次应该会看到页面错误.
| 归档时间: |
|
| 查看次数: |
2038 次 |
| 最近记录: |