HDD 之間的 NTFS 連接點會導致瓶頸嗎?或者連接點會緩存在記憶體中嗎?
具體來說,我想將 Steam 安裝在磁性 HDD 上。這意味著所有遊戲都將安裝在那裡。為了從 SSD 中受益,我會將我正在玩的遊戲從 HDD 上的 Steam 目錄連接到 SSD。
我想知道這是否會導致效能問題。遊戲每次存取檔案時,是否需要讀取HDD,讀取連接點,解析SSD上的新路徑,然後得到真實的檔案?或者作業系統會快取這個重定向,這樣效能損失只會在第一次發生嗎?
謝謝!
答案1
很可能不會,它不會成為瓶頸。有一些與 NTFS 連接相關的開銷,但在您的場景中它應該可以忽略不計。
您可以透過將資料物理移動到 SSD 並且根本不使用結點來消除開銷(這對我來說似乎是您問題的核心問題),但我懷疑您能否衡量差異。
連接點在哪裡儲存和快取?
路口是類型重解析點全部儲存在$Extend\$Reparse
圖元檔案(另一個更著名的圖元檔案是$MFT
)。
當檔案或目錄具有與其關聯的重分析點時,NTFS 會建立一個
$Reparse
以重分析點命名的屬性。此屬性儲存重新分析程式碼和資料。為了讓 NTFS 可以輕鬆定位磁碟區上的所有重分析點,名為\$Extend\$Reparse
儲存的元資料檔案將重分析點檔案和目錄 MFT 條目號連接到其關聯的重分析點程式碼。 NTFS 會依照索引中的 MFT 條目編號對條目進行排序$R
。
來源:Win2K NTFS 內部,第 1 部分,作者:Mark Russinovich
重新解析圖
來源:Win2K NTFS 內部,第 1 部分,作者:Mark Russinovich
有人評論說結點儲存在 MFT 中並且 MFT 被快取。現在,當我們知道連接點儲存在哪裡時,我需要可靠的來源來支援快取聲明;我找不到。
所以我不知道,但我認為這並不重要。
是否有記錄跨磁碟連線降低效能的情況?
是的,急性腎衰竭已經遇到問題像這樣。他正在對小檔案的批量刪除進行基準測試,當跨結點進行操作時,限制因素不再是 IO(如預期)而是 CPU。該基準也在 上進行了詳細討論GitHub。