更新解决了运行 Windows Server 2016 的计算机上的 ReFS 中的大量内存使用问题

应用对象
Windows Server 2016 Windows Server 2016 Standard

摘要

你注意到运行 Windows Server 2016 的计算机上的复原文件系统 (ReFS) 文件系统类型占用大量内存。 执行备份时,你可能还会注意到 ReFS 卷无响应或冻结。 当使用执行大型块克隆操作的备份应用程序时,可能会特意发生这种情况。

此更新通过更彻底地取消映射文件的多个视图来提高 ReFS 性能。

如何获取更新

此更新包含在 2018 年 2 月 22 日累积更新中。

详细信息

警告

使用注册表编辑器或其他方法修改注册表不当可能会出现严重问题。 这些问题可能需要你重新安装操作系统。 Microsoft 无法保证可以解决这些问题。 修改注册表的风险由您自行承担。

此更新包括可选的可调整注册表参数,用于处理以前在 KB 4016173 和 KB 4035951中记录的大型 ReFS 元数据流。

重要提示

  • 需要重启这些参数更改才能生效。
  • 这些参数可以任意组合使用,因为它们在功能上不重叠。
  • 必须在故障转移群集的每个节点上一致地设置这些参数。

可调整参数

参数 说明
RefsEnableLargeWorkingSetTrim 此选项会导致 ReFS 尝试在每个检查点对所有元数据流进行完整的 MM 取消映射。 仅当卷处于空闲状态且没有映射页时,此选项才会产生预期结果。
在以下子项中指定指示的值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem
值名称: RefsEnableLargeWorkingSetTrim
值类型: REG_DWORD
值数据: 1
RefsNumberOfChunksToTrim ReFS 具有延迟 MM 取消映射逻辑。 因此,当 ReFS 循环命名空间以完成 MM 取消映射时,它会以特定的粒度取消映射。 未映射的虚拟地址空间数由以下公式确定:
RefsNumberOfChunksToTrim * 128MB (大小为 10 TB 的卷 >)
RefsNumberOfChunksToTrim * 64MB (大小为 10 TB 的卷 <)
如果正在取消映射的 VA 范围没有活动引用 (即映射的元数据页) ,则此选项有效。
在以下子项中指定指示的值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem
值名称: RefsNumberOfChunksToTrim
值类型: REG_DWORD
值数据: 4 (十进制)
注意RefsNumberOfChunksToTrim 设置为较大的值会导致 ReFS 更积极地剪裁。 这会减少正在使用的内存。 将剪裁值设置为适当的数字:8、16、32 等。
RefsEnableInlineTrim 在此选项中,ReFS 在取消映射其元数据页时,会向下发送 MM 剪裁。 这是最激进的选项,因为如果在高性能媒体(如 SSD 或 NVMe)上使用 ReFS,则可能会导致性能回归。



在以下子项中指定指示的值:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem



值名称: RefsEnableInlineTrim
值类型: REG_DWORD
值数据:1

建议:

  • 如果大型活动工作集导致性能不佳,请尝试设置 RefsEnableLargeWorkingSetTrim = 1
  • 如果此设置未生成令人满意的结果,请尝试 RefsNumberOfChunksToTrim 的不同值,例如 8、16、32 等。
  • 如果这仍然无法提供所需的效果,请将 RefsEnableInlineTrim 设置为 1
RefsDisableCachedPins 此选项禁用缓存的引脚。 这是大型活动工作集的主要原因。 在以下子项中指定指示的值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem
值名称: RefsDisableCachedPins
值类型: REG_DWORD
值数据: 1
RefsProcessedDeleteQueueEntryCountThreshold 此选项向 ReFS 检查点逻辑添加启发式操作。 这会导致 ReFS 在删除队列达到特定大小时运行检查点。 IO 在 ReFS 上停滞,因为在处理大型删除队列时检查点逻辑停滞。
在以下子项中指定指示的值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem
值名称: RefsProcessedDeleteQueueEntryCountThreshold
值类型: REG_DWORD
值数据: 2048 (十进制)
注意RefsProcessedDeleteQueueEntryThreshold 设置为较低的值会导致 ReFS 更频繁地运行检查点。 将值设置为 2048,然后将该值减少到 1024,然后将 512。
DuplicateExtentBatchSizeinMB
(仅适用于 Microsoft Data Protection Manager)
大量重复盘区调用会导致系统延迟。 这是因为其他操作必须等到这些长时间运行的操作完成。 此选项可减小重复盘区调用的大小。
注意 DPM 会将此注册表项更改设置为 UR4 的默认值。
在以下子项中指定指示的值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Data Protection Manager\Configuration\DiskStorage
值名称: DuplicateExtentBatchSizeinMB
值类型: REG_DWORD
值数据: 100 (十进制)
注意DuplicateExtentBatchSizeinMB 的默认值为 2000 (2 GB) 。 接受从 1 到 4095 的任何值。
TimeOutValue 此选项扩展 TimeOutValue 值。
在以下子项中指定指示的值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Disk
值名称: TimeOutValue
值类型: REG_DWORD
值数据: 0x78 (十六进制)
注意 TimeOutValue 的默认值为 0x41 (65 十进制) 。 0x78转换为 120 decimal。

参考资料

复原文件系统 (ReFS) 概述