Topik ini menyediakan FAQ mengenai performa sistem file Penyimpanan File NAS (NAS) yang menggunakan protokol SMB atau NFS.
Apa hubungan antara performa sistem file dan kapasitas penyimpanan sistem file tersebut?
Sistem file NAS tujuan umum
Performa baca dan tulis (throughput maksimum) suatu sistem file berbanding lurus secara linear dengan kapasitas penyimpanannya. Kapasitas yang lebih tinggi menghasilkan throughput yang lebih tinggi. Untuk informasi selengkapnya, lihat Sistem file NAS tujuan umum.
Sistem file NAS Ekstrem
Performa baca dan tulis suatu sistem file meningkat secara bertahap seiring peningkatan kapasitas penyimpanan. Untuk informasi selengkapnya, lihat Sistem file NAS Ekstrem.
Apa hubungan antara performa sistem file dan ukuran direktori?
Penelusuran direktori dalam sistem file mungkin menjadi lambat dalam kondisi berikut:
Direktori sedang dimodifikasi, misalnya file dalam direktori sedang dibuat, dihapus, atau diganti namanya. Hal ini menyebabkan respons lambat karena sering terjadi invalidasi cache.
Metadata direktori terlalu besar untuk muat dalam cache klien, sehingga menyebabkan eviksi cache yang sering dan respons lambat.
Solusi:
Batasi jumlah file dalam satu direktori. Simpan kurang dari 10.000 file dalam satu direktori.
Hindari modifikasi direktori secara berulang saat menelusurinya.
Jika sebuah direktori berisi lebih dari 10.000 file dan tidak sering dimodifikasi, pasang sistem file menggunakan protokol NFSv3 dan tentukan parameter
nordirplusuntuk mempercepat penelusuran. Verifikasi efektivitas metode ini sebelum menerapkannya.
Bagaimana parameter mount memengaruhi performa NAS?
Parameter mount sangat memengaruhi performa sistem file NAS. Daftar berikut menjelaskan dampak dari parameter mount tertentu:
rsize dan wsize:
Dampak: Kedua parameter ini menentukan ukuran blok untuk pertukaran data antara klien dan server. Ukuran blok yang lebih besar dapat mengurangi jumlah permintaan jaringan, sehingga meningkatkan throughput, terutama saat Anda bekerja dengan file besar.
Nilai yang direkomendasikan: 1048576 (1 MB). Gunakan nilai maksimum kapan pun memungkinkan. Ukuran blok yang lebih kecil dapat menyebabkan overhead jaringan yang lebih tinggi dan menurunkan performa.
hard:
Dampak: Saat opsi mount hard digunakan, klien akan terus mencoba ulang permintaan jika server NAS tidak tersedia, menunggu hingga server merespons. Ini menjamin integritas dan konsistensi data.
Rekomendasi: Aktifkan parameter ini. Parameter ini membantu mencegah kehilangan data tetapi dapat menyebabkan aplikasi sementara tertunda. Oleh karena itu, parameter ini cocok untuk kasus penggunaan yang memerlukan ketersediaan tinggi.
timeo:
Dampak: Parameter ini menentukan berapa lama klien menunggu respons sebelum mencoba ulang permintaan. Periode timeout yang singkat dapat menyebabkan percobaan ulang yang sering, yang dapat menurunkan performa, terutama pada jaringan yang tidak stabil.
Nilai yang direkomendasikan: 600 (60 detik). Nilai ini memastikan jaringan memiliki cukup waktu untuk pulih, sehingga mengurangi jumlah percobaan ulang.
retrans:
Dampak: Parameter ini menentukan jumlah kali klien NFS mencoba ulang permintaan yang gagal. Jumlah percobaan ulang yang lebih tinggi dapat meningkatkan tingkat keberhasilan permintaan tetapi juga dapat meningkatkan latensi.
Nilai yang direkomendasikan: 2. Nilai ini menyeimbangkan performa dengan keandalan data.
noresvport:
Dampak: Saat opsi ini diaktifkan, port TCP baru digunakan untuk memastikan konektivitas jaringan ketika jaringan pulih dari kegagalan. Ini meningkatkan keandalan jaringan.
Rekomendasi: Aktifkan parameter ini untuk memastikan koneksi jaringan yang stabil.
Opsi mount
softtidak direkomendasikan. Opsi ini dapat menyebabkan korupsi data diam-diam jika server tidak merespons tepat waktu. Gunakan hanya jika aplikasi Anda dapat menangani error I/O dengan baik dan Anda sepenuhnya memahami risikonya.Hindari mengatur opsi mount ke nilai selain nilai default. Jika Anda mengubah ukuran buffer baca atau tulis atau menonaktifkan caching atribut, performa dapat menurun.
Bagaimana bandwidth instans ECS membatasi performa sistem file NAS?
Throughput yang dapat Anda capai dengan sistem file NAS pada akhirnya dibatasi oleh bandwidth jaringan instans ECS yang terhubung. Misalnya, jika sistem file NAS Anda memiliki throughput teoretis 500 MB/s, tetapi instans ECS Anda hanya memiliki kartu jaringan 1 Gbit/s (sekitar 125 MB/s), throughput aktual Anda akan dibatasi sekitar 125 MB/s.
Apa yang terjadi jika throughput baca dan tulis suatu permintaan melebihi ambang batas?
Jika throughput baca dan tulis permintaan dari Anda atau aplikasi Anda melebihi ambang batas, NAS secara otomatis melakukan throttle terhadap permintaan tersebut. Hal ini meningkatkan latensi.
Untuk sistem file NAS tujuan umum, jalankan perintah Truncate untuk meningkatkan ambang batas throughput. Untuk informasi selengkapnya, lihat Bagaimana cara meningkatkan ambang batas throughput baca dan tulis sistem file NAS tujuan umum?
Untuk sistem file NAS Ekstrem, lakukan scale out untuk meningkatkan ambang batas throughput. Untuk informasi selengkapnya, lihat Scale out sistem file NAS Ekstrem.
Untuk informasi selengkapnya mengenai ambang batas throughput sistem file NAS tujuan umum dan Ekstrem, lihat Metrik Kinerja sistem file NAS tujuan umum dan Metrik Kinerja sistem file NAS Ekstrem.
Bagaimana cara meningkatkan ambang batas throughput baca dan tulis sistem file NAS tujuan umum?
Throughput baca dan tulis sistem file NAS tujuan umum meningkat secara linear seiring peningkatan kapasitas penyimpanannya. Untuk informasi selengkapnya tentang hubungan antara throughput baca dan tulis dengan penggunaan kapasitas sistem file, lihat Spesifikasi sistem file NAS tujuan umum.
Anda dapat meningkatkan kapasitas yang disediakan sistem file, dan dengan demikian performanya, dengan membuat file sparse berukuran besar. Hal ini dapat dilakukan dengan menulis file berukuran besar tetapi berisi data minimal, atau dengan menggunakan perintah seperti truncate atau fsutil. Ini meningkatkan throughput baca dan tulis sistem file tersebut. Anda dikenai biaya berdasarkan ruang aktual yang ditempati oleh file sparse atau file yang dihasilkan dalam sistem file NAS Alibaba Cloud. Untuk informasi selengkapnya, lihat Penagihan sistem file NAS tujuan umum.
Misalnya, menulis file 1 TiB ke sistem file NAS kapasitas umum meningkatkan throughput baca dan tulisnya sebesar 150 MB/s. Menulis file 1 TiB ke sistem file NAS performa standar meningkatkan throughput baca dan tulisnya sebesar 600 MB/s.
Linux
Jalankan perintah
Truncateuntuk menghasilkan file pada sistem file guna meningkatkan throughput baca dan tulisnya.sudo truncate --size=1TB /mnt/sparse_file.txtPada perintah di atas, /mnt adalah path pemasangan sistem file pada node komputasi.
Windows
Tulis file sparse ke sistem file untuk meningkatkan throughput baca dan tulisnya.
fsutil file createnew Z:\sparse_file.txt 1099511627776Pada perintah di atas, Z:\ adalah path pemasangan sistem file pada node komputasi.
Bagaimana cara mengatasi performa buruk saat mengakses NAS dari sistem operasi Linux?
Solusi 1: Konfigurasikan parameter
nconnectuntuk meningkatkan throughput satu instans ECS yang mengakses NASParameter
nconnectadalah opsi untuk memasang sistem file NFS pada klien Linux. Opsi ini memungkinkan satu mount NFS menggunakan beberapa koneksi TCP antara klien dan server, sehingga secara signifikan meningkatkan throughput untuk beban kerja dengan konkurensi I/O tinggi. Pengujian menunjukkan bahwa parameternconnectdapat meningkatkan throughput satu instans ECS yang mengakses NAS hingga 3 hingga 6 kali lipat, mencapai 3 GB/s.Kasus penggunaan
Operasi baca dan tulis I/O konkuren ganda dilakukan pada satu instans ECS (lebih dari 16 operasi konkuren).
Prasyarat
Versi kernel Linux adalah 5.3 atau lebih baru.
Prosedur
Tambahkan parameter
nconnectke perintahmount. Tetapkannconnect=4. Berikut contoh perintahnya.sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,nconnect=4PentingParameter nconnect meningkatkan throughput satu instans ECS yang mengakses NAS tetapi tidak meningkatkan ambang batas throughput sistem file NAS. Jika Anda mengaktifkan parameter nconnect untuk layanan dengan konkurensi tunggal, blok data kecil, atau sensitif terhadap latensi, latensi akan meningkat. Jangan aktifkan parameter nconnect untuk layanan semacam itu.
Solusi 2: Ubah sunrpc.tcp_slot_table_entries untuk meningkatkan throughput satu instans ECS yang mengakses NAS
Modul
sunrpcdalam kernel Linux menentukan jumlah slot komunikasi dalam satu tautan NFS. Versi Linux yang berbeda menggunakan konfigurasi sunrpc yang berbeda. Jika konfigurasi slot tinggi, latensi dapat meningkat. Jika konfigurasi slot rendah, throughput mungkin tidak mencukupi. Jika Anda memerlukan throughput tinggi, atur jumlah slot menjadi 128. Jika Anda memerlukan latensi rendah, atur jumlah slot menjadi 16 atau kurang.CatatanEfek konfigurasi parameter
sunrpc.tcp_slot_table_entriestidak sebesar parameternconnect. Konfigurasikan parameternconnectuntuk kernel Linux 5.3 dan versi lebih baru.Kasus penggunaan
Operasi baca dan tulis I/O konkuren ganda dilakukan pada satu instans ECS. Versi kernel lebih awal dari 3.10.
Prosedur
Untuk informasi selengkapnya, lihat Cara mengubah jumlah permintaan NFS konkuren.
Mengapa NGINX memerlukan waktu lama untuk menulis log ke sistem file?
Latar belakang:
Gunakan dua instruksi untuk menentukan log NGINX. Instruksi log_format menentukan format log. Instruksi access_log menentukan path penyimpanan file log, nama format, dan ukuran cache.
Masalah:
NGINX memerlukan waktu lama untuk menulis log ke sistem file, sehingga mengurangi performa penulisan.
Penyebab:
Path file log yang ditentukan dalam instruksi access_log berisi variabel. Setiap kali NGINX menulis entri log, ia membuka dan menutup file log tersebut. Dengan NAS, menutup file memicu flush data ke server untuk memastikan konsistensi. Siklus buka-tutup-flush yang sering ini menciptakan overhead performa yang signifikan.
Solusi:
Solusi 1: Hapus variabel dalam instruksi access_log dan simpan log di path tetap.
Solusi 2: Gunakan instruksi open_log_file_cache untuk menyimpan cache deskriptor file log yang sering digunakan. Ini meningkatkan performa penyimpanan log ke path yang berisi variabel. Untuk informasi selengkapnya tentang konfigurasi, lihat open_log_file_cache.
Konfigurasi yang direkomendasikan:
open_log_file_cache max=1000 inactive=1m valid=3m min_uses=2;
Mengapa operasi I/O tertunda pada sistem file SMB?
Masalah:
Saat Anda mengakses sistem file SMB menggunakan titik pemasangan, Anda harus menunggu beberapa menit sebelum melakukan operasi I/O pada sistem file tersebut.
Penyebab:
Penundaan terjadi karena klien NFS diinstal tetapi tidak digunakan.
Server file Internet gagal login ke sistem file SMB karena layanan WebClient diaktifkan.
File dalam sistem file tidak dapat dibuka karena
Nfsnptermasuk dalam nilai item konfigurasi registri.
Solusi:
Pertama kali Anda mengakses sistem file SMB, ping nama domain titik pemasangan untuk memeriksa konektivitas jaringan antara node komputasi dan sistem file serta memverifikasi bahwa latensi berada dalam rentang normal.
Jika perintah ping gagal, periksa pengaturan jaringan Anda dan pastikan jaringan terhubung.
Jika latensinya tinggi, ping alamat IP titik pemasangan. Jika latensi ping alamat IP jauh lebih rendah daripada ping nama domain, periksa konfigurasi server DNS Anda.
Jika klien NFS diinstal tetapi tidak digunakan, uninstal klien NFS tersebut.
Nonaktifkan layanan WebClient.
Periksa item konfigurasi registri di path berikut: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\NetworkProvider\Order\ProviderOrder. Jika nilai registri berisi
Nfsnp, hapusNfsnpdan restart instans.
Gunakan tool Fio untuk memeriksa apakah metrik performa abnormal.
fio.exe --name=./iotest1 --direct=1 --rwmixread=0 --rw=write --bs=4K --numjobs=1 --thread --iodepth=128 --runtime=300 --group_reporting --size=5G --verify=md5 --randrepeat=0 --norandommap --refill_buffers --filename=\\<mount point dns>\myshare\testfio1Lakukan operasi baca dan tulis I/O menggunakan blok data besar. Blok data kecil mengonsumsi lebih banyak sumber daya jaringan. Jika Anda tidak dapat mengubah ukuran blok data, bangun kelas BufferedOutputStream untuk menulis data dengan ukuran buffer tertentu.
Mengapa operasi I/O pada klien SMB Windows Server tertunda?
Penyebab:
Secara default, opsi
large mtudinonaktifkan pada klien SMB Windows. Hal ini membatasi performa I/O klien tersebut.Solusi:
Aktifkan opsi
large mtudengan mengubah registri. Kunci registri terletak di path berikut: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkstation\ParametersDi path ini, buat kunci dengan tipe data
DWORDdan beri nama DisableLargeMtu. Atur nilai kunci tersebut ke0. Restart instans agar perubahan berlaku.
Bagaimana cara meningkatkan performa akses dari IIS ke NAS?
Penyebab:
Saat Internet Information Services (IIS) mengakses file dalam direktori bersama sistem file NAS, backend IIS mungkin mengakses direktori bersama tersebut beberapa kali. Mengakses sistem file NAS memerlukan setidaknya satu interaksi jaringan, yang berbeda dari mengakses sistem file lokal. Meskipun setiap permintaan akses tidak memakan waktu lama, klien mungkin memerlukan waktu lama untuk merespons jika banyak permintaan akses dikirim.
Solusi:
Gunakan komponen SMB Redirector untuk mengoptimalkan performa. Untuk informasi selengkapnya, lihat SMB2 Client Redirector Caches Explained.
Kunci registri terletak di path berikut: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters. Ubah nilai ketiga item konfigurasi berikut menjadi 600 atau lebih tinggi:
FileInfoCacheLifetime
FileNotFoundCacheLifetime
DirectoryCacheLifetime
CatatanJika tidak ada item konfigurasi registri tersebut, lakukan langkah-langkah berikut:
Pastikan sistem file menggunakan protokol SMB.
Periksa apakah versi Windows Anda mendukung ketiga item konfigurasi registri tersebut. Jika versi Windows Anda mendukung item konfigurasi tersebut tetapi tidak ada, Anda harus membuatnya secara manual. Untuk informasi selengkapnya, lihat Performance tuning for file servers.
Jika IIS sering mengakses file-file tersebut, simpan file terkait web, seperti file JS dan CSS, di disk lokal.
Jika performa baca dan tulis IIS masih belum memenuhi kebutuhan bisnis Anda, kirim tiket.
Mengapa sistem file tersendat atau tidak merespons saat saya menjalankan perintah ls?
Gejala
Saat Anda menelusuri direktori sistem file, sistem file tersendat atau tidak merespons. Hal ini dapat terjadi saat Anda menjalankan perintah ls, operasi yang berisi karakter wildcard
*atau?, perintahrm -rf, atau panggilan sistemgetdents.Penyebab
Direktori sedang dimodifikasi. Misalnya, file dalam direktori sedang dibuat, dihapus, atau diganti namanya. Hal ini menyebabkan respons lambat karena sering terjadi invalidasi cache.
Metadata direktori terlalu besar untuk muat dalam cache klien, sehingga menyebabkan eviksi cache yang sering dan respons lambat.
Solusi
Batasi jumlah file dalam satu direktori. Simpan kurang dari 10.000 file dalam satu direktori.
Hindari modifikasi direktori secara berulang saat menelusurinya.
Jika sebuah direktori berisi lebih dari 10.000 file dan tidak sering dimodifikasi, pasang sistem file menggunakan protokol NFSv3 dan tentukan parameter nordirplus untuk mempercepat penelusuran. Verifikasi efektivitas metode ini sebelum menerapkannya. Untuk informasi selengkapnya, lihat Parameter mount.
Bagaimana cara meningkatkan performa baca sekuensial NFS pada kernel Linux 5.4 atau lebih baru?
Parameter NFS read_ahead_kb menentukan ukuran data dalam kilobyte (KB) yang akan dibaca di muka, atau dipra-ambil, oleh kernel Linux selama operasi baca sekuensial.
Untuk versi kernel Linux sebelum 5.4.*, nilai parameter read_ahead_kb adalah hasil kali dari NFS_MAX_READAHEAD dan rsize (ukuran baca klien yang ditentukan dalam opsi pemasangan). Mulai dari versi kernel Linux 5.4.*, parameter read_ahead_kb secara default adalah 128 KB. Oleh karena itu, tingkatkan parameter read_ahead_kb menjadi 15 MB saat Anda menggunakan opsi pemasangan yang direkomendasikan.
Setelah sistem file dipasang, jalankan perintah berikut untuk mengatur ulang nilai parameter read_ahead_kb. Pada perintah tersebut, ganti nas-mount-point dengan path lokal sistem file yang dipasang dan ganti read-ahead-kb dengan ukuran data dalam KB yang akan dibaca di muka atau dipra-ambil.
device_number=$(stat -c '%d' nas-mount-point)
((major = ($device_number & 0xFFF00) >> 8))
((minor = ($device_number & 0xFF) | (($device_number >> 12) & 0xFFF00)))
sudo bash -c "echo read-ahead-kb > /sys/class/bdi/$major:$minor/read_ahead_kb"Perintah berikut memberikan contoh penggunaan /mnt sebagai path lokal sistem file yang dipasang untuk mengatur nilai parameter read_ahead_kb menjadi 15 MB:
device_number=$(stat -c '%d' /mnt)
((major = ($device_number & 0xFFF00) >> 8))
((minor = ($device_number & 0xFF) | (($device_number >> 12) & 0xFFF00)))
sudo bash -c "echo 15000 > /sys/class/bdi/$major:$minor/read_ahead_kb"Mengapa koneksi pertama ke share SMB lambat?
Penyebab:
Koneksi awal yang lambat ke share SMB sering disebabkan oleh klien Windows yang mencoba terhubung melalui penyedia jaringan yang tidak perlu atau lambat dalam urutan penyedia yang dikonfigurasi, atau oleh latensi resolusi DNS.
Solusi:
PeringatanMemodifikasi registri adalah operasi berisiko tinggi. Sebelum Anda melakukan operasi ini, buat snapshot sistem atau cadangkan registri.
Langkah 1: Optimalkan urutan penyedia jaringan
Tekan Win+R, masukkan
regedit, lalu buka Registry Editor.Arahkan ke path berikut:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order
Di panel kanan, temukan dan klik ganda nilai ProviderOrder.
Pada kotak teks Value data, temukan dan hapus entri
NfsnpdanWebClient. Pastikan Anda mempertahankan koma di antara penyedia lainnya.Klik OK untuk menyimpan perubahan Anda.
Restart instans ECS klien agar perubahan berlaku.
Langkah 2: Pecahkan masalah latensi resolusi DNS
Jika masalah masih berlanjut setelah Anda menyelesaikan Langkah 1, periksa apakah resolusi DNS yang lambat menjadi penyebabnya.
Buka Command Prompt (CMD).
Jalankan
ping <alamat titik pemasangan>dan catat latensinya.Jalankan
ping <alamat IP titik pemasangan>dan catat latensinya.Bandingkan hasilnya: Jika latensi ping alamat IP jauh lebih rendah daripada ping alamat titik pemasangan, resolusi DNS lambat. Periksa konfigurasi DNS instans ECS Anda.