Bagaimana kinerja Windows dengan NTFS dengan volume besar file dan direktori?
Apakah ada panduan seputar batasan file atau direktori yang dapat Anda tempatkan dalam satu direktori sebelum Anda mengalami masalah kinerja atau masalah lain?
Misalnya apakah memiliki folder dengan 100.000 folder di dalamnya adalah hal yang OK untuk dilakukan?
windows
performance
filesystems
ntfs
James Newton-King
sumber
sumber
Jawaban:
Berikut ini beberapa saran dari seseorang dengan lingkungan tempat kami memiliki folder yang berisi puluhan juta file.
Untuk menjawab pertanyaan Anda secara lebih langsung: Jika Anda melihat 100 ribu entri, jangan khawatir. Pergi jatuhkan dirimu. Jika Anda melihat puluhan juta entri, maka:
a) Buat rencana untuk membaginya ke dalam sub-folder (misalnya, katakanlah Anda memiliki 100 juta file. Lebih baik menyimpannya dalam 1000 folder sehingga Anda hanya memiliki 100.000 file per folder daripada menyimpannya ke dalam 1 folder besar. Ini akan membuat 1000 indeks folder alih-alih satu indeks besar yang lebih mungkin untuk mencapai batas maksimum # fragmen atau
b) Buat rencana untuk menjalankan contig.exe secara teratur untuk menjaga defragmented indeks folder besar Anda.
Baca di bawah hanya jika Anda bosan.
Batas aktual bukan pada # fragmen, tetapi pada jumlah rekaman segmen data yang menyimpan pointer ke fragmen.
Jadi yang Anda miliki adalah segmen data yang menyimpan pointer ke fragmen data direktori. Data direktori menyimpan informasi tentang sub-direktori & sub-file yang seharusnya disimpan oleh direktori. Sebenarnya, direktori tidak "menyimpan" apa pun. Ini hanya fitur pelacakan dan presentasi yang menyajikan ilusi hierarki kepada pengguna karena media penyimpanan itu sendiri linier.
sumber
contig.exe
, itu bukan di server saya. Pencarian Google menghasilkan halaman technet ini yang tidak menyebutkan subdirektori atau defragmentasi indeks folder.contig.exe
ke direktori, saya pikir itu akan melakukan pekerjaan:contig -a .
memberikan:C:\temp\viele-Dateien is in 411 fragments Summary: Number of files processed : 1 Average fragmentation : 411 frags/file
c:\my\big\directory
, atauc:\my\big\directory\*
, atau on$mft
? (atau yang lainnya?)Ada juga masalah kinerja dengan pembuatan nama file pendek memperlambat segalanya. Microsoft merekomendasikan untuk mematikan pembuatan nama file pendek jika Anda memiliki lebih dari 300 ribu file dalam satu folder [1]. Semakin unik 6 karakter pertama, semakin besar masalah ini.
[1] Bagaimana NTFS Bekerja dari http://technet.microsoft.com , cari "300.000"
sumber
If you use large numbers of files in an NTFS folder (300,000 or more), disable short-file name generation for better performance, and especially if the first six characters of the long file names are similar.
- hemat pencarian untuk "300.000" petunjuk. BTW: mengetikkan "300" sudah cukup (= tidak perlu clipboarding di sini)Saya sedang membangun Struktur File untuk menampung hingga 2 miliar (2 ^ 32) file dan melakukan tes berikut yang menunjukkan penurunan tajam dalam Navigasi + Baca Kinerja di sekitar 250 File atau 120 Direktori per Direktori NTFS pada Solid State Drive ( SSD):
Menariknya Jumlah Direktori dan File TIDAK secara signifikan mengganggu.
Jadi Pelajarannya adalah:
Ini adalah Data (2 Pengukuran untuk setiap File dan Direktori):
Dan ini adalah Kode Tes:
sumber
100.000 harus baik-baik saja.
Saya telah (secara anekdot) melihat orang mengalami masalah dengan jutaan file dan saya sendiri memiliki masalah dengan Explorer hanya tidak memiliki petunjuk bagaimana cara menghitung melewati 60-an ribu file, tetapi NTFS harus baik untuk volume yang Anda bicarakan.
Jika Anda bertanya-tanya, jumlah maksimum file teknis (dan saya harap secara teoritis ) adalah: 4.294.967.295
sumber
Untuk akses lokal, sejumlah besar direktori / file tampaknya tidak menjadi masalah. Namun, jika Anda mengaksesnya di jaringan, ada kinerja yang nyata setelah beberapa ratus (terutama ketika diakses dari mesin Vista (XP ke Windows Server dengan NTFS tampaknya berjalan jauh lebih cepat dalam hal itu)).
sumber
Ketika Anda membuat folder dengan entri N, Anda membuat daftar item N pada level sistem file. Daftar ini adalah struktur data bersama di seluruh sistem. Jika Anda kemudian mulai memodifikasi daftar ini secara terus menerus dengan menambahkan / menghapus entri, saya berharap setidaknya beberapa pertengkaran kunci atas data bersama. Pendapat ini - secara teoritis - dapat memengaruhi kinerja secara negatif.
Untuk skenario baca-saja, saya tidak dapat membayangkan alasan untuk penurunan kinerja direktori dengan banyak entri.
sumber
Saya memiliki pengalaman nyata dengan sekitar 100.000 file (masing-masing beberapa MB) di NTFS dalam direktori saat menyalin satu perpustakaan online.
Dibutuhkan sekitar 15 menit untuk membuka direktori dengan Explorer atau 7-zip.
Copy situs menulis dengan
winhttrack
akan selalu macet setelah beberapa waktu. Itu juga berurusan dengan direktori, yang berisi sekitar 1.000 file. Saya pikir hal terburuk adalah bahwa MFT hanya dapat dilalui secara berurutan.Membuka yang sama di bawah ext2fsd pada ext3 memberi waktu yang hampir sama. Mungkin pindah ke reiserfs (bukan reiser4fs) dapat membantu.
Mencoba menghindari situasi ini mungkin yang terbaik.
Untuk program Anda sendiri menggunakan blob tanpa fs bisa bermanfaat. Itulah cara yang dilakukan Facebook untuk menyimpan foto.
sumber