本文是关于如何计算 DFSR 正常运行所需的最小暂存区域的快速参考指南。 如果值低于这些值,可能会导致复制速度变慢或完全停止。
请记住,这些只是最小值。 考虑临时区域大小时,暂存区域越大越好,最大不超过已复制文件夹的大小。 请参阅“如何确定你是否有暂存区问题”一节以及本文末尾链接的博客文章,了解有关为什么拥有适当大小的暂存区域很重要的更多详细信息。
一般指南
暂存区域配额必须与已复制文件夹中最大的 32 个文件一样大。
与日常复制相比,初始复制将更多地使用暂存区域。 如果你有可用的驱动器空间,强烈建议你在初始复制期间将暂存区域设置为高于最小值。
如何找到这 X 个最大的文件?
使用 PowerShell 脚本查找 32 个或 9 个最大的文件,并确定它们加起来有多少 GB. 在开始之前,启用最大路径长度支持,这是在 Windows Server 2016 中首次使用最大路径长度限制添加的
运行以下命令:
Get-ChildItem c:\\temp -recurse | Sort-Object length -descending | select-object -first 32 | ft name,length -wrap –auto
此命令将返回文件名和文件大小(以字节为单位)。 如果你想知道已复制文件夹中最大的 32 个文件是什么,以便可以“访问”它们的所有者,这将非常有用。
运行以下命令:
Get-ChildItem c:\\temp -recurse | Sort-Object length -descending | select-object -first 32 | measure-object -property length –sum
此命令将返回文件夹中 32 个最大文件的总字节数,而不列出文件名。
运行以下命令:
$big32 = Get-ChildItem c:\\temp -recurse | Sort-Object length -descending | select-object -first 32 | measure-object -property length –sum $big32.sum /1gb
此命令将获取文件夹中 32 个最大文件的总字节数,并计算将字节转换为千兆字节。 此命令由两行组成。 可以一次将它们粘贴到 PowerShell 命令 shell 中,也可以背对背运行它们。
手动演练
运行命令 1 将返回与以下输出类似的结果。 为简洁起见,此示例仅使用 16 个文件。 对于 Windows 2008 及更高版本的操作系统,始终使用 32。
PowerShell 返回的示例数据
名称 | 长度 |
File5.zip | 10286089216 |
archive.zip | 6029853696 |
BACKUP.zip | 5751522304 |
file9.zip | 5472683008 |
MENTOS.zip | 5241586688 |
File7.zip | 4321264640 |
file2.zip | 4176765952 |
frd2.zip | 4176765952 |
BACKUP.zip | 4078994432 |
File44.zip | 4058424320 |
file11.zip | 3858056192 |
Backup2.zip | 3815138304 |
BACKUP3.zip | 3815138304 |
Current.zip | 3576931328 |
Backup8.zip | 3307488256 |
File999.zip | 3274982400 |
如何使用此数据确定最小暂存区域大小:
- 名称 = 文件的名称。
- 长度 = 字节
- 1 千兆字节 =1073741824 字节
首先,对总字节数求和。 接下来,将总数除以 1073741824。 可以通过 Microsoft Excel 轻松完成此操作。
示例
根据上面的示例,总字节数为 75241684992。 要获得所需的最小暂存区域配额,你需要将 75241684992 除以 1073741824。
75241684992 / 1073741824 = 70.07 GB
根据此数据,如果四舍五入到最接近的整数,你可以将我的暂存区设置为 71GB.
实际方案:
虽然手动演练很有趣,但自己计算可能会很浪费时间。 要自动执行该过程,请使用上述示例中的命令 3。 结果将如下所示
使用示例命令 3,除了四舍五入到最接近的整数外,不需要任何额外的工作,你就可以确定你需要为 d:\docs 分配 6GB 的暂存区域配额。
是否需要重新引导或重新启动 DFSR 服务才能获取更改?
对暂存区域配额的更改不需要重新启动或重新启动服务即可生效。 需要等待 AD 复制和 DFSR 的 AD 轮询周期才能应用更改。
如何确定是否存在暂存区域问题
可以通过监视 DFSR 服务器上的特定事件 ID 来检测暂存区域问题。 事件列表为 4202、4204、4206、4208 和 4212。 下面列出了这些事件的文本。 区分 4202 和 4204 以及其他事件非常重要。 在正常操作条件下,可能会记录大量的 4202 和 4204 事件。
暂存区域事件
事件 ID:4202 严重性:警告
DFS 复制服务检测到,本地路径(路径)中已复制文件夹所使用的临时空间高于高水位线。 该服务将尝试删除最旧的暂存文件。 性能可能会受到影响。
事件 ID:4204 严重性:信息
DFS 复制服务已成功删除本地路径(PATH)中已复制文件夹的旧暂存文件。 暂存空间现在低于高水位线。
事件 ID:4206 严重性:警告
DFS 复制服务未能清理本地路径(路径)中的已复制文件夹的旧暂存文件。 该服务可能无法复制某些大文件,并且已复制文件夹可能无法同步。该服务将在 (x) 分钟后自动重试临时空间清理。 如果检测到某些暂存文件已解锁,则该服务可能会提前开始清理。
事件 ID:4208 严重性:警告
DFS 复制服务检测到,临时空间使用率大于本地路径(路径)中的已复制文件夹的暂存配额。 该服务可能无法复制某些大文件,并且已复制文件夹可能无法同步。该服务将尝试自动清理暂存空间。
事件 ID:4212 严重性:错误
DFS 复制服务无法复制本地路径(路径)中的已复制文件夹,因为该分段路径无效或不可访问。
4202 和 4208 有什么区别?
事件 4202 和 4208 具有类似的文本;即 DFSR 检测到暂存区域使用率超过高水位线。 不同之处在于,4208 是在运行暂存区域清理之后记录的,并且仍然超过了暂存配额。 4202 是正常的预期事件,而 4208 是异常的,需要干预。
多少个 4202、4204 事件算是太多?
这个问题没有单一的答案。 与 4206、4208 或 4212 事件不同(这些事件始终表示错误并且表示需要用户采取操作),4202 和 4204 事件是在正常运行条件下发生。 看到大量 4202 和 4204 事件可能表示存在问题。 注意事项:
- 复制的文件夹 (RF) 日志记录 4202 是否执行初始复制? 如果是,则记录 4202 和 4204 事件是正常的。 在初始复制过程中,你将需要通过提供尽可能多的暂存区域来尽可能减少这些数据
- 仅仅检查 4202 个事件的总数是不够的。 你必须知道每个 RF 记录了多少。 如果你在 24 小时内为一个 RF 记录 20 个 4202 事件,则视为高。 但是,如果你有 20 个已复制文件夹,并且每个文件夹有一个事件,那么表示你做得很好。
- 你应该检查几天的数据以确定趋势。
我们通常建议客户在正常操作条件下,每个已复制文件夹每天最多允许一个 4202 事件。 “正常”表示没有发生初始复制。 我们的理由是:
- 清理暂存区域所花费的时间就是不复制文件所花费的时间。 清除暂存区域时,复制将暂停。
- DFSR 受益于完整的暂存区域,将其用于 RDC 和跨文件 RDC,或者将相同的文件复制到其他成员
- 记录的 4202 和 4204 事件越多,就越有可能出现 DFSR 无法清理暂存区域或必须提前从暂存区域清除文件的情况。
- 根据我的经验,4206、4208 和 4212 事件之前和之后总是有大量的 4202 和 4204 事件。
虽然每天每个 RF 只允许一个 4202 事件是很保守的行为,但这大大降低了你遇到暂存区域问题的几率,并更好地利用你的 DFSR 服务器资源来实现复制文件的预期目的。