S2D 卷上因 ReFS 标签导致的 Hyper-V 主机非分页池内存耗尽

华 兴 60 信誉分
2026-08-13T01:48:06.51+00:00

尊敬的社区成员:

希望您一切顺利。

我们组织的一台设备遭遇了内核非分页池内存耗尽的问题。系统显示以下内存池分配错误:

错误代码/状态:由 ReFS 标签引起的非分页池耗尽(主机死锁/冻结)

该问题表明,在高强度的虚拟化工作负载下,ReFS 驱动程序过度累积元数据内存,且未能正确释放非分页池分配,最终导致主机完全死锁,且不会生成蓝屏崩溃转储文件(BSOD Dump)。

设备详细信息:

  • 操作系统:Windows Server 2022 Datacenter
  • 存储架构:使用 ReFS 卷的直接存储空间(Storage Spaces Direct, S2D)
  • 工作负载类型:承载数十台运行中虚拟机的 Hyper-V 群集节点
  • 主要症状:ReFS 标签下的内核内存泄漏导致系统无响应
  • 受影响组件:ReFS 文件系统驱动程序与内核池分配

能否请您针对恰当的解决方案提供建议?如果适用的话,烦请协助提供用于修改 ReFS 延迟分配(delayed-allocation)和文件系统缓存占用限制(file-system cache footprint limits)的具体注册表项。

如果需要任何补充信息,请随时告知。

非常感谢!

Windows 商业版 | Windows 365 商业版
0 个注释 无注释

1 个答案

排序依据: 非常有帮助
  1. Harry Phan 33,640 信誉分 独立顾问
    2026-08-13T07:31:15.02+00:00

    你好,

    在 Windows Server 2022 上运行 S2D + ReFS 时出现非分页池耗尽问题,微软已确认这是 ReFS 元数据缓存机制导致的内存泄漏风险。解决办法是应用最新的累积更新,并在注册表中启用 ReFS 的内存修剪参数来限制缓存占用。

    在您的环境中,ReFS 的 allocate-on-write 元数据语义和块缓存逻辑会导致非分页池不断增长,最终引发主机死锁。微软在 KB4016173 中提供了可调节的注册表项,用于控制 ReFS 的延迟分配和缓存占用。这些键位于 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 下,具体如下:

    RefsEnableLargeWorkingSetTrim (REG_DWORD):默认值 0。设置为 1 时,ReFS 会在每次检查点尝试完整释放所有元数据流的映射,从而减少非分页池压力。

    RefsNumberOfChunksToTrim (REG_DWORD):默认值 4。此值决定 ReFS 在遍历命名空间时修剪的粒度。数值越大,修剪越激进。建议在高负载虚拟化环境下提高此值,例如 8 或 16。

    RefsDisableCachedPins (REG_DWORD):默认值 0。设置为 1 时,禁用 ReFS 的缓存 pin 机制,减少元数据缓存驻留时间。

    修改方法:

    打开注册表编辑器 (regedit.exe)。

    导航至 HKLM\SYSTEM\CurrentControlSet\Control\FileSystem。

    新建或修改上述键值。

    重启服务器使配置生效。

    请注意,这些参数不会互相冲突,可以组合使用。但在生产环境中修改前务必先测试,因为过度修剪可能会影响 I/O 性能。微软的最佳实践是同时保持系统更新到最新累积补丁,以确保 ReFS 驱动程序包含最新的内存管理修复。

    如果您已经应用了最新的 Windows Server 2022 累积更新但问题仍然存在,建议收集 PoolMon 输出和内核内存转储,并提交给微软支持团队,因为这可能是尚未修复的 ReFS 内核泄漏。

    我希望您在这里找到了一些有用的信息。如果这能帮助您更深入理解问题,欢迎接受此答案。如有更多问题,请随时留言。祝您生活愉快!

    HP.

    此答案是否有帮助?

    0 个注释 无注释

你的答案

提问者可以将答案标记为“已接受”,审查方可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。