Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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刷新mmap大约需要20秒,无需更新_Mongodb_Mmap - Fatal编程技术网

mongodb刷新mmap大约需要20秒,无需更新

mongodb刷新mmap大约需要20秒,无需更新,mongodb,mmap,Mongodb,Mmap,您好,我们的一位客户正在64位windows server 2008 R2 Enterprise上运行mongodb V2.2.3 我们目前看到mmap刷新时间每分钟超过20秒。 让我困惑的是,它没有对磁盘进行任何写入。(磁盘写入字节位于0旁边) 我们访问数据的程序已暂时关闭 所以所有连接的都是mongo外壳。 Mongostat和mongotop没有显示任何东西 该数据库有1.3亿条记录。mmap有356个文件 有没有关于这可能是什么原因的建议 如果您的工作集比内存大得多,并且MongoDB一

您好,我们的一位客户正在64位windows server 2008 R2 Enterprise上运行mongodb V2.2.3

我们目前看到mmap刷新时间每分钟超过20秒。 让我困惑的是,它没有对磁盘进行任何写入。(磁盘写入字节位于0旁边) 我们访问数据的程序已暂时关闭

所以所有连接的都是mongo外壳。 Mongostat和mongotop没有显示任何东西

该数据库有1.3亿条记录。mmap有356个文件

有没有关于这可能是什么原因的建议


如果您的工作集比内存大得多,并且MongoDB一直在磁盘上进行读取(而不仅仅是同步写入磁盘时的正常峰值),那就多谢了,然后,您真的应该进行分片,以便将数据分布到多台计算机/实例上。

鉴于您描述的行为以及mmap有大量文件,我怀疑潜在的性能问题存在于MongoDB Jira问题跟踪器中:

在Windows上,内存映射文件刷新是同步操作。当要求OS虚拟内存管理器刷新内存映射文件时,它会向OS中的文件缓存管理器发出同步写入请求。这会在磁盘IO延迟较高的Windows系统上导致较大的I/O暂停,而在Linux上,相同的写入是异步的

有几种可能的方法可以提高Windows上的刷新性能,包括MongoDB服务器和Windows O/S中的代码更改。现在已经确认了Windows上的同步刷新行为,正在进行一些工作来解决这些问题

如果您使用的是延迟更高的本地存储(例如,旋转磁盘),则可以通过升级到SSD或更高规格的驱动器来缓解此问题

我建议更新投票/观看服务器-12401和相关Jira问题


从MongoDB 2.2升级到新版本也是值得的,因为2.2已经过了更新的生命周期。从那以后,有两个主要的产品发布分支,包括在一般性能/功能以及Windows支持方面的重大改进。

感谢您提供的一般提示,但它没有解释当mmap没有写入任何内容时,为什么需要20秒才能完成mmap。您的Windows服务器是否托管在Azure上?如果没有,您有什么类型的存储器?存储器直接连接到硬盘。该系统正在一台真正的服务器上运行。