NTFS Junction Point dari HDD ke SSD, apakah ini akan menyebabkan bottleneck kinerja? (relokasi permainan uap)

13

Dapatkah Titik Persimpangan NTFS antara HDD menyebabkan kemacetan? Atau persimpangan akan di-cache dalam memori?

Secara khusus, saya ingin menginstal Steam pada HDD magnetik. Ini berarti semua game akan diinstal di sana. Untuk mendapatkan manfaat dari SSD saya, saya akan menunjukkan titik permainan yang saya mainkan secara aktif dari direktori Steam pada HDD ke SSD.

Saya bertanya-tanya apakah ini akan menyebabkan masalah kinerja. Setiap kali gim mengakses file, apakah perlu membaca HDD, membaca titik persimpangan, menyelesaikan jalur baru pada SSD, lalu mendapatkan file yang benar? Ataukah OS akan cache ulang ini arah sehingga hukuman kinerja hanya memukul pertama kali?

Terima kasih!

ddtemplar
sumber
3
Definisi titik persimpangan secara langsung disimpan dalam entri MFT yang bertanggung jawab. Karena MFT di-cache dalam memori, saya tidak akan mengharapkan HDD diakses ketika bekerja dengan direktori yang ditautkan.
Gene
Terima kasih! Saya tidak akan terlalu khawatir tentang itu, kecuali saya mulai melihat perlambatan aneh.
ddtemplar
2
Bahkan jika HDD memang perlu diakses untuk membaca titik persimpangan, itu kecil - membaca akan segera berakhir, dan hanya perlu terjadi sekali karena akan di-cache.
Adambean
Catatan satu sisi: Jika Anda menginstal aplikasi steam pada SSD Anda masih dapat mengubah di mana game diinstal ke dalam steam tanpa persimpangan.
cybernard

Jawaban:

5

Kemungkinan besar tidak, itu tidak akan menjadi hambatan. Ada beberapa overhead yang terkait dengan persimpangan NTFS, tetapi dalam skenario Anda itu harus diabaikan.

Anda dapat menyingkirkan overhead dengan memindahkan data secara fisik ke SSD dan tidak menggunakan persimpangan sama sekali (yang tampaknya menjadi perhatian utama pertanyaan Anda kepada saya), tetapi saya ragu Anda dapat mengukur perbedaannya.

Di mana persimpangan disimpan dan di-cache?

Persimpangan adalah jenis titik reparse yang semuanya disimpan dalam $Extend\$Reparse metafile ( metafile lain yang lebih terkenal adalah $MFT).

Ketika file atau direktori memiliki titik reparse yang terkait dengannya, NTFS membuat atribut yang dinamai $Reparseuntuk titik reparse. Atribut ini menyimpan kode dan data yang berulang. Agar NTFS dapat dengan mudah menemukan semua titik reparasi pada volume, file metadata bernama \$Extend\$Reparsemenyimpan entri yang menghubungkan file titik reparasi dan nomor entri direktori MFT ke kode titik reparasi terkait. NTFS mengurutkan entri berdasarkan nomor entri MFT dalam $Rindeks.

sumber: Di dalam Win2K NTFS, Bagian 1 oleh Mark Russinovich

Diagram berulang

Proses reparse

sumber: Di dalam Win2K NTFS, Bagian 1 oleh Mark Russinovich

Ada komentar bahwa persimpangan disimpan di MFT dan MFT di-cache. Nah sekarang, ketika kita tahu di mana persimpangan disimpan, saya akan membutuhkan sumber yang dapat dipercaya untuk mendukung klaim caching; yang tidak dapat saya temukan.

Jadi saya tidak tahu, tapi saya pikir itu tidak penting.

Apakah ada skenario yang terdokumentasi ketika cross disk junction menurunkan kinerja?

Ya, ARF mengalami masalah seperti ini. Dia melakukan benchmarking penghapusan batch file kecil, dan ketika operasi dilakukan di persimpangan, faktor pembatas tidak lagi IO (seperti yang diharapkan) tetapi CPU. Tolok ukur ini juga dibahas secara rinci di GitHub .

Vlastimil Ovčáčík
sumber