HDDからSSDへのNTFSジャンクションポイントは、パフォーマンスのボトルネックの原因になりますか?(スチームゲームの再配置)


13

HDD間のNTFSジャンクションポイントがボトルネックの原因になりますか?または、ジャンクションはメモリにキャッシュされますか?

具体的には、Steamを磁気HDDにインストールします。これは、すべてのゲームがそこにインストールされることを意味します。SSDを活用するために、HDDのSteamのディレクトリからSSDに積極的にプレイしているゲームのジャンクションポイントを作成します。

これがパフォーマンスの問題を引き起こすかどうか疑問に思っていました。ゲームがファイルにアクセスするたびに、HDDを読み取り、ジャンクションポイントを読み取り、SSDの新しいパスを解決してから、真のファイルを取得する必要がありますか?または、OSがこのリダイレクトをキャッシュするので、パフォーマンスのペナルティは最初にしかヒットしませんか?

ありがとう!


3
ジャンクションポイントの定義は、責任あるMFTエントリに直接保存されます。MFTはメモリにキャッシュされるため、リンクされたディレクトリを操作するときにHDDにアクセスすることは期待できません。
ジーン14

ありがとう!奇妙な減速に気づき始めない限り、私はそれについてあまり心配しません。
ddtemplar 14

2
ジャンクションポイントを読み取るためにHDDにアクセスする必要があったとしても、それはごくわずかです-読み取りはほぼすぐに終了し、キャッシュされるときに一度だけ実行する必要があります。
アダムビーン

補足事項:SteamアプリケーションをSSDにインストールする場合、ジャンクションなしでゲームのインストール先をSteamの内部に変更できます。
サイバーナード

回答:


5

おそらくない、それはボトルネックになりません。NTFSジャンクションに関連するオーバーヘッドがいくつかありますが、シナリオでは無視できるはずです。

データをSSDに物理的に移動し、ジャンクションをまったく使用しないことでオーバーヘッドを取り除くことができます(これは私にとってあなたの質問の中心的な関心事だと思われます)が、違いを測定できるとは思えません。

ジャンクションはどこに保存およびキャッシュされますか?

ジャンクションは、すべてメタファイルに保存される再解析ポイントのタイプです(もう1つのより有名なメタファイルはです)。$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でも詳しく説明されています

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.