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.
sumber
Jawaban:
Server tidak memiliki cukup memori. Alih-alih melakukan caching data metafile NTFS dalam memori setiap akses file diperlukan banyak pembacaan disk. Seperti biasa, masalahnya sudah jelas begitu Anda melihatnya. Biarkan saya berbagi apa yang mengaburkan perspektif saya:
Server menunjukkan 2 GB memori yang tersedia di Task Manager dan RamMap. Jadi Windows memutuskan bahwa memori yang tersedia tidak cukup untuk menyimpan bagian yang bermakna dari data metafile. Atau beberapa batasan internal tidak memungkinkan untuk menggunakan bit memori terakhir untuk data metafile.
Setelah memutakhirkan, Pengelola Tugas RAM tidak akan menunjukkan lebih banyak memori yang digunakan. Namun, RamMap melaporkan beberapa GB data metafile ditahan sebagai data siaga. Rupanya, data siaga dapat berdampak besar.
Alat yang digunakan untuk analisis:
fsutil fsinfo ntfsinfo driveletter:
untuk menampilkan ukuran MFT NTFS (atau NTFSInfo )sumber