从HDD到SSD的NTFS连接点,会不会造成性能瓶颈?(蒸汽游戏搬迁)

ddt*_*lar 13 ntfs steam junction windows-8 ntfs-junction

HDD 之间的 NTFS 连接点会导致瓶颈吗?还是将连接缓存在内存中?

具体来说,我想在磁性硬盘上安装 Steam。这意味着所有游戏都将安装在那里。为了从我的 SSD 中受益,我会将我正在玩的游戏从 HDD 上的 Steam 目录连接到 SSD。

我想知道这是否会导致性能问题。游戏每次访问一个文件,是否都需要读HDD,读结点,解析SSD上的新路径,然后得到真正的文件?或者操作系统会缓存这个重定向,所以性能损失只会在第一次出现?

谢谢!

Vla*_*čík 5

很可能不会,它不会成为瓶颈。有一些与 NTFS 连接相关的开销,但在您的场景中它应该可以忽略不计。

您可以通过将数据物理移动到 SSD 而根本不使用连接点来消除开销(这似乎是您对我的问题的核心关注点),但我怀疑您能否衡量差异。

连接点在哪里存储和缓存?

连接点是一种重新分析点,它们都存储在$Extend\$Reparse 元文件中(另一个更著名的元文件是$MFT)。

当文件或目录具有与其关联的重新分析点时,NTFS 会创建一个以$Reparse重新分析点命名的属性。该属性存储重解析代码和数据。为了让 NTFS 可以轻松定位卷上的所有重解析点,名为\$Extend\$Reparse存储条目的元数据文件 将重解析点文件和目录 MFT 条目编号与其关联的重解析点代码连接起来。NTFS 按$R索引中的 MFT 条目编号对条目进行排序。

来源:Inside Win2K NTFS, Part 1 by Mark Russinovich

重解析图

重新解析过程

来源:Inside Win2K NTFS, Part 1 by Mark Russinovich

有评论说连接点存储在 MFT 中并且 MFT 被缓存。现在,当我们知道连接的存储位置时,我需要可靠的来源来支持缓存声明;我找不到。

所以我不知道,但我认为这不重要。

当跨磁盘连接降低性能时,是否有记录的场景?

是的,ARF遇到了这样的问题。他正在对小文件的批量删除进行基准测试,当跨结点进行操作时,限制因素不再是 IO(正如预期的那样)而是 CPU。GitHub 上也详细讨论了该基准测试。