我在windows server 2008 R2
上安装了MongoDb,但未安装hotfix KB2731284
,但我无法轻松重启服务器。
在hotfix
描述中,我收到此消息“您运行的应用程序使用FlushViewOfFile()
函数从分页内存池中清除内存映射文件。” (见https://support.microsoft.com/en-us/kb/2731284)
我的问题是,什么时候调用功能FlushViewOfFile()
?我的应用程序只是写入一个集合并从中获取数据。我是否有冒险行为的风险?
答案 0 :(得分:7)
我认为您可以在不应用Hotfix的情况下运行MongoDb,但我不推荐它。很长一段时间你可能会遇到问题。他们在MongoDB中包含了一些修复方法来解决这个问题。
另见this。
在Windows上,内存映射文件刷新是同步操作。当要求OS虚拟内存管理器刷新内存映射文件时,它会向OS中的文件高速缓存管理器发出同步写入请求。这会导致Windows系统上的大I / O停顿具有较高的磁盘IO延迟,而在Linux上,相同的写入是异步的。
对于像Azure持久存储(10毫秒)这样的高延迟磁盘驱动器,问题变得至关重要。此行为导致bg刷新时间非常长,将磁盘IOPS限制为100.在低延迟存储(本地存储和AWS)上,问题不明显。
在应用此修补程序的Windows 7和Windows Server 2008 R2上,您可以获得与MongoDB相关的更好的文件分配性能