Memahami performa Azure Files

Azure Files dapat memenuhi persyaratan performa untuk sebagian besar aplikasi dan kasus penggunaan. Artikel ini menjelaskan berbagai faktor yang dapat memengaruhi performa berbagi file dan cara mengoptimalkan performa berbagi file Azure untuk beban kerja Anda.

Berlaku untuk

Jenis berbagi File SMB NFS
Berbagi file standar (GPv2), LRS/ZRS Ya Tidak
Berbagi file standar (GPv2), GRS/GZRS Ya Tidak
Berbagi file premium (FileStorage), LRS/ZRS Ya Ya

Glosarium

Sebelum membaca artikel ini, sangat berguna untuk memahami beberapa istilah utama yang berkaitan dengan performa penyimpanan:

  • Operasi IO per detik (IOPS)

    IOPS, atau operasi input/output per detik, mengukur jumlah operasi sistem file per detik. Istilah "IO" dapat dipertukarkan dengan istilah "operasi" dan "transaksi" dalam dokumentasi Azure Files.

  • Ukuran I/O

    Ukuran I/O, kadang-kadang disebut sebagai ukuran blok, adalah ukuran permintaan yang digunakan aplikasi untuk melakukan operasi input/output tunggal (I/O) pada penyimpanan. Tergantung pada aplikasi, ukuran I/O dapat berkisar dari ukuran yang sangat kecil seperti 4 KiB hingga ukuran yang jauh lebih besar. Ukuran I/O memainkan peran utama dalam throughput yang dapat dicapai.

  • Throughput

    Throughput mengukur jumlah bit yang dibaca dari atau ditulis ke penyimpanan per detik, dan diukur dalam mebibyte per detik (MiB/dtk). Untuk menghitung throughput, kalikan IOPS dengan ukuran I/O. Misalnya, 10.000 IOPS * Ukuran I/O 1 MiB = 10 GiB/dtk, sedangkan 10.000 IOPS * ukuran I/O 4 KiB = 38 MiB/dtk.

  • Latensi

    Latensi adalah sinonim untuk penundaan dan biasanya diukur dalam milidetik (md). Ada dua jenis latensi: latensi end-to-end dan latensi layanan. Untuk informasi selengkapnya, lihat Latensi.

  • Kedalaman antrean

    Kedalaman antrean adalah jumlah permintaan I/O yang tertunda yang dapat ditangani sumber daya penyimpanan kapan saja. Untuk informasi selengkapnya, lihat Kedalaman antrean.

Memilih tingkat performa berdasarkan pola penggunaan

Azure Files menyediakan berbagai tingkat penyimpanan yang membantu mengurangi biaya dengan memungkinkan Anda menyimpan data pada tingkat performa dan harga yang sesuai. Pada tingkat tertinggi, Azure Files menawarkan dua tingkat performa: standar dan premium. Berbagi file standar dihosting pada sistem penyimpanan yang didukung oleh hard disk drive (HDD), sementara berbagi file premium didukung oleh solid-state drive (SSD) untuk performa yang lebih baik. Berbagi file standar memiliki beberapa tingkat penyimpanan (transaksi dioptimalkan, panas, dan dingin) yang dapat Anda pindahkan dengan mulus antara untuk memaksimalkan penyimpanan data saat istirahat dan harga transaksi. Namun, Anda tidak dapat berpindah antara tingkat standar dan premium tanpa memigrasikan data Anda secara fisik di antara akun penyimpanan yang berbeda.

Saat memilih antara berbagi file standar dan premium, penting untuk memahami persyaratan pola penggunaan yang diharapkan yang anda rencanakan untuk dijalankan pada Azure Files. Jika Anda memerlukan IOPS dalam jumlah besar, kecepatan transfer data yang sangat cepat, atau latensi yang sangat rendah, maka Anda harus memilih berbagi file Azure premium.

Tabel berikut ini meringkas target performa yang diharapkan antara standar dan premium. Untuk detailnya, lihat Azure Files skalabilitas dan target performa.

Persyaratan pola penggunaan Standar Premium
Latensi tulis (milidetik satu digit) Ya Ya
Latensi baca (milidetik satu digit) Tidak Ya

Berbagi file premium menawarkan model provisi yang menjamin profil performa berikut berdasarkan ukuran berbagi. Untuk informasi selengkapnya, lihat Model yang disediakan. Kredit burst terakumulasi dalam wadah ledakan setiap kali lalu lintas untuk berbagi file Anda di bawah IOPS dasar. Kredit yang diperoleh digunakan nanti untuk mengaktifkan bursting ketika operasi akan melebihi IOPS dasar.

Kapasitas (GiB) Garis Dasar IOPS Ledakan IOPS Ledakan kredit Throughput (ingress + egress)
100 3.100 Hingga 10.000 24.840.000 110 MiB/dtk
500 3\.500 Hingga 10.000 23.400.000 150 MiB/detik
1\.024 4.024 Hingga 10.000 21.513.600 203 MiB/dtk
5,120 8.120 Hingga 15.360 26.064.000 613 MiB/dtk
10,240 13.240 Hingga 30.720 62.928.000 1.125 MiB/dtk
33,792 36.792 Hingga 100.000 227.548.800 3.480 MiB/dtk
51,200 54.200 Hingga 100.000 164.880.000 5.220 MiB/dtk
102,400 100,000 Hingga 100.000 0 10.340 MiB/dtk

Daftar periksa performa

Baik Anda menilai persyaratan performa untuk beban kerja baru atau yang sudah ada, memahami pola penggunaan Anda akan membantu Anda mencapai performa yang dapat diprediksi. Konsultasikan dengan admin penyimpanan atau pengembang aplikasi Anda untuk menentukan pola penggunaan berikut.

  • Sensitivitas latensi: Apakah pengguna membuka file atau berinteraksi dengan desktop virtual yang berjalan di Azure Files? Ini adalah contoh beban kerja yang sensitif terhadap latensi baca dan juga memiliki visibilitas tinggi kepada pengguna akhir. Jenis beban kerja ini lebih cocok untuk berbagi file Azure premium, yang dapat memberikan latensi milidetik tunggal untuk operasi baca dan tulis (< 2 md untuk ukuran I/O kecil).

  • Persyaratan IOPS dan throughput: Berbagi file premium mendukung batas IOPS dan throughput yang lebih besar daripada berbagi file standar. Lihat target skala berbagi file untuk informasi selengkapnya.

  • Durasi dan frekuensi beban kerja: Beban kerja pendek (menit) dan jarang (per jam) akan lebih kecil kemungkinannya untuk mencapai batas performa atas berbagi file standar dibandingkan dengan beban kerja yang berjalan lama dan sering terjadi. Pada berbagi file premium, durasi beban kerja sangat membantu saat menentukan profil performa yang benar untuk digunakan berdasarkan ukuran provisi. Bergantung pada berapa lama beban kerja perlu meledak dan berapa lama waktu yang dihabiskan di bawah IOPS dasar, Anda dapat menentukan apakah Anda mengumpulkan kredit bursting yang cukup untuk secara konsisten memenuhi beban kerja Anda pada waktu sibuk. Menemukan saldo yang tepat akan mengurangi biaya dibandingkan dengan penyediaan berbagi file secara berlebihan. Kesalahan umum adalah menjalankan pengujian performa hanya selama beberapa menit, yang sering menyesatkan. Untuk mendapatkan tampilan performa yang realistis, pastikan untuk menguji pada frekuensi dan durasi yang cukup tinggi.

  • Paralelisasi beban kerja: Untuk beban kerja yang melakukan operasi secara paralel, seperti melalui beberapa utas, proses, atau instans aplikasi pada klien yang sama, berbagi file premium memberikan keuntungan yang jelas daripada berbagi file standar: SMB Multichannel. Lihat Meningkatkan performa berbagi file SMB Azure untuk informasi selengkapnya.

  • Distribusi operasi API: Apakah metadata beban kerja berat dengan operasi buka/tutup file? Ini umum untuk beban kerja yang melakukan operasi baca terhadap sejumlah besar file. Lihat Beban kerja berat metadata atau namespace.

Latensi

Saat memikirkan latensi, penting untuk terlebih dahulu memahami bagaimana latensi ditentukan dengan Azure Files. Pengukuran yang paling umum adalah latensi yang terkait dengan latensi end-to-end dan metrik latensi layanan . Menggunakan metrik transaksi ini dapat membantu mengidentifikasi latensi sisi klien dan/atau masalah jaringan dengan menentukan berapa banyak waktu yang dihabiskan lalu lintas aplikasi Anda saat transit ke dan dari klien.

  • Latensi end-to-end (SuccessE2ELatency) adalah total waktu yang diperlukan transaksi untuk melakukan perjalanan pulang pergi lengkap dari klien, di seluruh jaringan, ke layanan Azure Files, dan kembali ke klien.

  • Latensi Layanan (SuccessServerLatency) adalah waktu yang diperlukan transaksi untuk pulang-pergi hanya dalam layanan Azure Files. Ini tidak termasuk latensi klien atau jaringan apa pun.

    Diagram membandingkan latensi klien dan latensi layanan untuk Azure Files.

Perbedaan antara nilai SuccessE2ELatency dan SuccessServerLatency adalah latensi yang kemungkinan disebabkan oleh jaringan dan/atau klien.

Adalah umum untuk membingungkan latensi klien dengan latensi layanan (dalam hal ini, Azure Files performa). Misalnya, jika latensi layanan melaporkan latensi rendah dan end-to-end melaporkan latensi yang sangat tinggi untuk permintaan, yang menunjukkan bahwa semua waktu dihabiskan saat transit ke dan dari klien, dan bukan di layanan Azure Files.

Selain itu, seperti yang digambarkan diagram, semakin jauh Anda jauh dari layanan, semakin lambat pengalaman latensi, dan semakin sulit untuk mencapai batas skala performa dengan layanan cloud apa pun. Ini terutama berlaku saat mengakses Azure Files dari lokal. Meskipun opsi seperti ExpressRoute ideal untuk lokal, opsi tersebut masih tidak cocok dengan performa aplikasi (komputasi + penyimpanan) yang berjalan secara eksklusif di wilayah Azure yang sama.

Tip

Menggunakan VM di Azure untuk menguji performa antara lokal dan Azure adalah cara yang efektif dan praktis untuk membuat garis besar kemampuan jaringan koneksi ke Azure. Seringkali beban kerja dapat diperlambat oleh sirkuit ExpressRoute atau gateway VPN yang berukuran kecil atau salah dirutekan.

Kedalaman antrean

Kedalaman antrean adalah jumlah permintaan I/O luar biasa yang dapat dilayankan oleh sumber daya penyimpanan. Karena disk yang digunakan oleh sistem penyimpanan telah berevolusi dari spindel HDD (IDE, SATA, SAS) ke perangkat solid state (SSD, NVMe), mereka juga telah berevolusi untuk mendukung kedalaman antrean yang lebih tinggi. Beban kerja yang terdiri dari satu klien yang secara serial berinteraksi dengan satu file dalam himpunan data besar adalah contoh kedalaman antrean rendah. Sebaliknya, beban kerja yang mendukung paralelisme dengan beberapa utas dan beberapa file dapat dengan mudah mencapai kedalaman antrean tinggi. Karena Azure Files adalah layanan file terdistribusi yang mencakup ribuan node kluster Azure dan dirancang untuk menjalankan beban kerja dalam skala besar, sebaiknya bangun dan uji beban kerja dengan kedalaman antrean tinggi.

Kedalaman antrean tinggi dapat dicapai dengan beberapa cara berbeda dalam kombinasi dengan klien, file, dan utas. Untuk menentukan kedalaman antrean untuk beban kerja Anda, kalikan jumlah klien dengan jumlah file dengan jumlah utas (klien * file * utas = kedalaman antrean).

Tabel di bawah ini menggambarkan berbagai kombinasi yang dapat Anda gunakan untuk mencapai kedalaman antrean yang lebih tinggi. Meskipun Anda dapat melebihi kedalaman antrean optimal 64, kami tidak merekomendasikannya. Anda tidak akan melihat perolehan performa lagi jika Anda melakukannya, dan Anda berisiko meningkatkan latensi karena kejenuhan TCP.

Klien File Threads Kedalaman antrean
1 1 1 1
1 1 2 2
1 2 2 4
2 2 2 8
2 2 4 16
2 4 4 32
1 8 8 64
4 4 2 64

Tip

Untuk mencapai batas performa atas, pastikan beban kerja atau pengujian tolok ukur Anda multi-utas dengan beberapa file.

Aplikasi tunggal versus multi-utas

Azure Files paling cocok untuk aplikasi multi-utas. Cara termampu untuk memahami dampak performa yang dimiliki multi-utas pada beban kerja adalah dengan menelusuri skenario oleh I/O. Dalam contoh berikut, kami memiliki beban kerja yang perlu menyalin 10.000 file kecil secepat mungkin ke atau dari berbagi file Azure.

Tabel ini memecah waktu yang diperlukan (dalam milidetik) untuk membuat satu file 16 KiB pada berbagi file Azure, berdasarkan aplikasi utas tunggal yang menulis dalam ukuran blok 4 KiB.

Operasi I/O Buat 4 KiB tulis 4 KiB tulis 4 KiB tulis 4 KiB tulis Tutup Total
Rangkaian 1 3 md 2 mdtk 2 mdtk 2 mdtk 2 mdtk 3 md 14 mdtk

Dalam contoh ini, dibutuhkan sekitar 14 md untuk membuat satu file 16 KiB dari enam operasi. Jika aplikasi berutas tunggal ingin memindahkan 10.000 file ke berbagi file Azure, yang diterjemahkan menjadi 140.000 md (14 ms * 10.000) atau 140 detik karena setiap file dipindahkan secara berurutan satu per satu. Perlu diingat bahwa waktu untuk melayani setiap permintaan terutama ditentukan oleh seberapa dekat komputasi dan penyimpanan berada satu sama lain, seperti yang dibahas di bagian sebelumnya.

Dengan menggunakan delapan utas alih-alih satu, beban kerja di atas dapat dikurangi dari 140.000 md (140 detik) menjadi 17.500 md (17,5 detik). Seperti yang ditunjukkan tabel di bawah ini, saat Anda memindahkan delapan file secara paralel alih-alih satu file sekaligus, Anda dapat memindahkan jumlah data yang sama dalam waktu 87,5% lebih sedikit.

Operasi I/O Buat 4 KiB tulis 4 KiB tulis 4 KiB tulis 4 KiB tulis Tutup Total
Rangkaian 1 3 md 2 mdtk 2 mdtk 2 mdtk 2 mdtk 3 md 14 mdtk
Rangkaian 2 3 md 2 mdtk 2 mdtk 2 mdtk 2 mdtk 3 md 14 mdtk
Utas 3 3 md 2 mdtk 2 mdtk 2 mdtk 2 mdtk 3 md 14 mdtk
Utas 4 3 md 2 mdtk 2 mdtk 2 mdtk 2 mdtk 3 md 14 mdtk
Rangkaian 5 3 md 2 mdtk 2 mdtk 2 mdtk 2 mdtk 3 md 14 mdtk
Utas 6 3 md 2 mdtk 2 mdtk 2 mdtk 2 mdtk 3 md 14 mdtk
Utas 7 3 md 2 mdtk 2 mdtk 2 mdtk 2 mdtk 3 md 14 mdtk
Utas 8 3 md 2 mdtk 2 mdtk 2 mdtk 2 mdtk 3 md 14 mdtk

Lihat juga