当使用内存映射文件时,我遇到 Windows 停滞的情况,因为新内存的分配和处理速度比使用内存映射文件将其写入磁盘的速度更快。
MiMappedPageWriter
我看到的唯一解决方案是在和执行其工作时限制我的处理KeBalanceSetManager
。如果应用程序运行速度较慢而不是操作系统完全冻结,我会完全没事。
SetWorkingSetSizeEx
使用硬限制已经有所帮助,因为MiMappedPageWriter
可以更早地开始将页面输出到磁盘,但在某些驱动器上,数据分配速度仍然更快。例如,250MB/s 的 SSD 无法管理它,但 500MB/s 的情况会好一些。但我必须支持各种硬件,不能依赖快速驱动器。
我发现曾经有一个性能计数器,例如:内存\映射文件写入字节数/秒,我可以使用不定期监控(参见:https://docs.microsoft.com/en-us/windows-server/management/windows-performance-monitor/memory-performance-counter-mapped-file-bytes-written-sec) 但似乎所有链接都消失了。
我搜索过很多地方,但没有找到这个性能计数器。
是否还存在此问题的原因,或者您能否想到在磁盘分页处于活动状态时限制该过程的其他可能性?