从HDD到SSD的NTFS Junction Point,会导致性能瓶颈吗?(蒸汽游戏搬迁)


13

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

具体来说,我想在磁性HDD上安装Steam。这意味着所有游戏都将安装在此处。为了受益于我的SSD,我将从HDD上Steam的目录将我正在积极玩的游戏连接到SSD。

我想知道这是否会导致性能问题。每次游戏访问文件时,是否需要读取HDD,读取连接点,解析SSD上的新路径,然后获取真实文件?还是操作系统会缓存此重定向,这样性能损失才第一次出现?

谢谢!


3
交界点的定义直接存储在负责的MFT条目中。由于MFT缓存在内存中,因此我不希望在使用链接目录时访问HDD。
2014年

谢谢!除非我开始注意到奇怪的速度下降,否则我不必担心太多。
2014年

2
即使确实需要访问HDD来读取连接点,它还是很小的-读取将几乎立即结束,并且只需进行一次即可,因为它将被缓存。
Adambean

侧面说明:如果将Steam应用程序安装在SSD上,您仍然可以将游戏的安装位置更改为Steam内部,而无需连接。
Cyber​​nard

Answers:


5

极有可能,这不会成为瓶颈。NTFS联结有一些开销,但是在您的情况下,这应该可以忽略不计。

您可以通过物理地将数据移动到SSD上而不使用连接来摆脱开销(这似乎是我的问题的核心问题),但是我怀疑您是否可以衡量差异。

联结在哪里存储和缓存?

连接点重新解析点的类型,它们全部存储在$Extend\$Reparse 图元文件中(另一个更著名的图元文件是$MFT)。

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

来源:Mark 2的内部Win2K NTFS,第1部分Russinovich

修复图

重新处理

来源:Mark 2的内部Win2K NTFS,第1部分Russinovich

有评论指出,联结存储在MFT中,并且MFT已缓存。好了,现在,当我们知道结点的存储位置时,我将需要可靠的来源来支持缓存声明。我找不到。

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

跨磁盘连接降低性能时是否有记录的方案?

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.