Saya melihat pengaturan ini:
- Windows Server 2012
- Drive 1 TB NTFS, 4 kluster KB, ~ 90% penuh
- ~ 10 juta file disimpan dalam 10.000 folder = ~ 1.000 file / folder
- File sebagian besar cukup kecil <50 KB
- Drive virtual di-host pada larik disk
Ketika suatu aplikasi mengakses file yang disimpan dalam folder acak, dibutuhkan 60-100 ms untuk membaca setiap file. Dengan alat uji, tampaknya penundaan terjadi saat membuka file. Membaca data maka hanya membutuhkan sebagian kecil dari waktu.
Singkatnya ini berarti bahwa membaca 50 file dapat dengan mudah mengambil 3-4 detik yang jauh lebih dari yang diharapkan. Penulisan dilakukan dalam batch sehingga kinerja tidak menjadi masalah di sini.
Saya sudah mengikuti saran tentang SO dan SF untuk sampai pada angka-angka ini.
- Menggunakan folder untuk mengurangi jumlah file per folder ( Menyimpan satu juta gambar di sistem file )
- Jalankan
contig
ke defragment folder dan file ( https://stackoverflow.com/a/291292/1059776 ) - 8.3 nama dan waktu akses terakhir dinonaktifkan ( Mengkonfigurasi sistem file NTFS untuk kinerja )
Apa yang harus dilakukan tentang waktu baca?
- Anggap 60-100 ms per file tidak masalah (bukan, bukan?)
- Adakah ide bagaimana pengaturan dapat ditingkatkan?
- Apakah ada alat pemantauan tingkat rendah yang dapat mengetahui dengan tepat waktu yang dihabiskan?
MEMPERBARUI
Seperti disebutkan dalam komentar, sistem menjalankan Symantec Endpoint Protection. Namun, menonaktifkannya tidak mengubah waktu baca.
PerfMon mengukur 10-20 ms per baca. Ini berarti bahwa setiap file yang dibaca membutuhkan operasi ~ 6 I / O, kan? Apakah ini pemeriksaan MFT dan ACL?
MFT memiliki ukuran ~ 8,5 GB yang lebih dari memori utama.