HDD之间的NTFS连接点会导致瓶颈吗?还是将联结存储在内存中?
具体来说,我想在磁性HDD上安装Steam。这意味着所有游戏都将安装在此处。为了受益于我的SSD,我将从HDD上Steam的目录将我正在积极玩的游戏连接到SSD。
我想知道这是否会导致性能问题。每次游戏访问文件时,是否需要读取HDD,读取连接点,解析SSD上的新路径,然后获取真实文件?还是操作系统会缓存此重定向,这样性能损失才第一次出现?
谢谢!
HDD之间的NTFS连接点会导致瓶颈吗?还是将联结存储在内存中?
具体来说,我想在磁性HDD上安装Steam。这意味着所有游戏都将安装在此处。为了受益于我的SSD,我将从HDD上Steam的目录将我正在积极玩的游戏连接到SSD。
我想知道这是否会导致性能问题。每次游戏访问文件时,是否需要读取HDD,读取连接点,解析SSD上的新路径,然后获取真实文件?还是操作系统会缓存此重定向,这样性能损失才第一次出现?
谢谢!
Answers:
极有可能,这不会成为瓶颈。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上详细讨论了该基准测试。