Meningkatkan performa berbagi file SMB Azure

Artikel ini menjelaskan bagaimana Anda dapat meningkatkan performa untuk berbagi file Azure SMB premium, termasuk menggunakan SMB Multichannel dan penembolokan metadata (pratinjau).

Berlaku untuk

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

Mengoptimalkan performa

Tips berikut mungkin membantu Anda mengoptimalkan performa:

  • Pastikan akun penyimpanan dan klien Anda berada di wilayah Azure yang sama untuk mengurangi latensi jaringan.
  • Gunakan aplikasi multi-thread dan sebarkan beban di beberapa file.
  • Keuntungan performa SMB Multichannel meningkat dengan jumlah file yang mendistribusikan beban.
  • Performa berbagi premium dibatasi oleh ukuran berbagi yang disediakan (IOPS/egress/ingress) dan batas file tunggal. Untuk detailnya, lihat Memahami penyediaan untuk berbagi file premium.
  • Performa maksimum klien VM tunggal masih terikat dengan batas VM. Misalnya, Standard_D32s_v3 dapat mendukung bandwidth maksimum 16.000 MBps (atau 2GBps), egress dari VM (tulis ke penyimpanan) diukur, ingress (baca dari penyimpanan) tidak. Performa berbagi file tunduk pada batas jaringan mesin, CPU, bandwidth jaringan penyimpanan internal yang tersedia, ukuran IO, paralelisme, serta faktor lainnya.
  • Tes awal biasanya merupakan pemanasan. Buang hasilnya dan ulangi pengujian.
  • Jika performa dibatasi oleh satu klien dan beban kerja masih di bawah batas berbagi yang disediakan, Anda dapat mencapai performa yang lebih tinggi dengan menyebarkan beban melalui beberapa klien.

Hubungan antara ukuran IOPS, throughput, dan I/O

Throughput = Ukuran IO * IOPS

Ukuran I/O yang lebih tinggi mendorong throughput yang lebih tinggi dan akan memiliki latensi yang lebih tinggi, menghasilkan jumlah IOPS bersih yang lebih rendah. Ukuran I/O yang lebih kecil akan mendorong IOPS yang lebih tinggi, tetapi akan mengakibatkan throughput bersih dan latensi yang lebih rendah. Untuk mempelajari selengkapnya, lihat Memahami performa Azure Files.

SMB Multichannel

SMB Multichannel mengaktifkan klien SMB 3.x untuk membuat beberapa koneksi jaringan ke berbagi file SMB. Azure Files mendukung SMB Multichannel pada berbagi file premium (berbagi file dalam jenis akun penyimpanan FileStorage) untuk klien Windows. Di sisi layanan, SMB Multichannel dinonaktifkan secara default di Azure Files, tetapi tidak ada biaya tambahan untuk mengaktifkannya.

Keuntungan

SMB Multichannel mengaktifkan klien untuk menggunakan beberapa koneksi jaringan yang memberikan peningkatan performa sekaligus menurunkan biaya kepemilikan. Peningkatan performa dicapai melalui agregasi bandwidth melalui beberapa NIC dan menggunakan dukungan Receive Side Scaling (RSS) untuk NIC untuk mendistribusikan beban I/O di beberapa CPU.

  • Peningkatan throughput: Beberapa koneksi memungkinkan data ditransfer melalui beberapa jalur secara paralel dan dengan demikian secara signifikan menguntungkan beban kerja yang menggunakan ukuran file yang lebih besar dengan ukuran I/O yang lebih besar, dan memerlukan throughput tinggi dari satu VM atau set VM yang lebih kecil. Beberapa beban kerja ini termasuk media dan hiburan untuk pembuatan konten atau transcoding, genomika, dan analisis risiko layanan keuangan.
  • IOPS yang lebih tinggi: Kemampuan NIC RSS memungkinkan distribusi beban yang efektif di beberapa CPU dengan beberapa koneksi. Ini membantu mencapai skala IOPS yang lebih tinggi dan pemanfaatan CPU VM yang efektif. Ini berguna untuk beban kerja yang memiliki ukuran I/O kecil, seperti aplikasi database.
  • Toleransi kegagalan jaringan: Beberapa koneksi mengurangi risiko gangguan karena klien tidak lagi bergantung pada koneksi individual.
  • Konfigurasi otomatis: Saat SMB Multichannel diaktifkan pada klien dan akun penyimpanan, fitur tersebut memungkinkan penemuan dinamis koneksi yang ada, dan dapat membuat jalur koneksi tambahan seperlunya.
  • Pengoptimalan biaya: Beban kerja dapat mencapai skala yang lebih tinggi dari satu VM, atau seperangkat VM kecil, saat terhubung ke berbagi premium. Ini dapat mengurangi total biaya kepemilikan dengan mengurangi jumlah VM yang diperlukan untuk menjalankan dan mengelola beban kerja.

Untuk mempelajari lebih lanjut tentang SMB Multichannel, lihat dokumentasi Windows.

Fitur ini memberikan manfaat performa yang lebih besar untuk aplikasi multi-utas tetapi biasanya tidak membantu aplikasi utas tunggal. Lihat bagian Perbandingan performa untuk detail selengkapnya.

Pembatasan

Berbagi file SMB Multichannel for Azure saat ini memiliki batasan berikut:

  • Hanya didukung pada klien Windows yang menggunakan SMB 3.1.1. Pastikan sistem operasi klien SMB di-{i>patch
  • Saat ini tidak didukung atau direkomendasikan untuk klien Linux.
  • Jumlah maksimum saluran adalah empat, untuk detailnya, lihat di sini.

Konfigurasi

SMB Multichannel hanya berfungsi saat fitur diaktifkan di sisi klien (klien Anda) dan sisi layanan (akun penyimpanan Azure Anda).

Pada klien Windows, SMB Multichannel diaktifkan secara default. Anda dapat memverifikasi konfigurasi dengan menjalankan perintah PowerShell berikut:

Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel

Di akun penyimpanan Azure, Anda harus mengaktifkan SMB Multichannel. Lihat, Mengaktifkan SMB Multichannel.

Menonaktifkan SMB Multichannel

Dalam kebanyakan skenario, terutama beban kerja multi-thread, klien akan melihat peningkatan performa dengan SMB Multichannel. Namun, untuk beberapa skenario tertentu seperti beban kerja berulir tunggal atau untuk tujuan pengujian, Anda mungkin ingin menonaktifkan SMB Multichannel. Lihat Perbandingan performa untuk detail selengkapnya.

Pastikan SMB Multichannel dikonfigurasi dengan benar

  1. Buat berbagi file premium baru atau gunakan berbagi premium yang sudah ada.
  2. Pastikan klien Anda mendukung SMB Multichannel (satu atau beberapa adaptor jaringan mengaktifkan penskalaan sisi penerima). Lihat dokumentasi Windows untuk detail selengkapnya.
  3. Memasang berbagi file ke klien Anda.
  4. Membuat beban dengan aplikasi Anda. Alat salinan seperti robocopy/MT, atau alat performa apa pun seperti Diskspd untuk membaca/menulis file dapat menghasilkan beban.
  5. Buka PowerShell sebagai admin dan gunakan perintah berikut: Get-SmbMultichannelConnection |fl
  6. Cari properti MaxChannels dan CurrentChannels .

Screenshot of Get-SMBMultichannelConnection results.

Perbandingan performa

Ada dua kategori pola beban kerja baca/tulis: utas tunggal dan multi-utas. Sebagian besar beban kerja menggunakan beberapa file, tetapi mungkin ada kasus penggunaan khusus yang mana beban kerja bekerja dengan satu file dalam berbagi. Bagian ini mencakup kasus penggunaan yang berbeda dan dampak performa untuk masing-masing kasus. Secara umum, sebagian besar beban kerja adalah multi-thread dan mendistribusikan beban kerja melalui beberapa file sehingga beban kerja harus mengamati peningkatan performa yang signifikan dengan SMB Multichannel.

  • Multi-utas/beberapa file: Bergantung pada pola beban kerja, Anda akan melihat peningkatan performa yang signifikan dalam membaca dan menulis I/Os melalui beberapa saluran. Perolehan performa bervariasi dari mana saja antara 2x hingga 4x dalam hal IOPS, throughput, dan latensi. Untuk kategori ini, SMB Multichannel harus diaktifkan untuk performa terbaik.
  • File multi-utas/tunggal: Untuk sebagian besar kasus penggunaan dalam kategori ini, beban kerja akan mendapat manfaat dari mengaktifkan SMB Multichannel, terutama jika beban kerja memiliki ukuran > I/O rata-rata ~16k. Beberapa contoh skenario yang mendapatkan keuntungan dari SMB Multichannel adalah pencadangan atau pemulihan satu file besar. Pengecualian di mana Anda mungkin ingin menonaktifkan SMB Multichannel adalah jika beban kerja Anda berat pada I/Os kecil. Dalam hal ini, Anda mungkin mengamati sedikit kehilangan performa ~10%. Bergantung pada kasus penggunaan, pertimbangkan untuk menyebarkan beban ke beberapa file, atau menonaktifkan fitur tersebut. Lihat bagian Konfigurasi untuk detailnya.
  • File tunggal/beberapa file atau file tunggal: Untuk sebagian besar beban kerja utas tunggal, ada manfaat performa minimum karena kurangnya paralelisme. Biasanya ada sedikit penurunan performa ~10% jika SMB Multichannel diaktifkan. Dalam hal ini, sangat ideal untuk menonaktifkan SMB Multichannel, dengan satu pengecualian. Jika beban kerja berulir tunggal dapat mendistribusikan beban di beberapa file dan menggunakan pada ukuran I/O rata-rata yang lebih besar (> ~16k), maka harus ada sedikit manfaat performa dari SMB Multichannel.

Konfigurasi pengujian performa

Untuk bagan dalam artikel ini, konfigurasi berikut digunakan: Satu Standar D32 v3 VM dengan satu NIC berkemampuan RSS dengan empat saluran. Beban dihasilkan menggunakan diskspd.exe, beberapa alur dengan kedalaman IO 10, dan I/Os acak dengan berbagai ukuran I/O.

Ukuran vCPU Memori: GiB Penyimpanan sementara (SSD) GiB Disk data maksimal Throughput penyimpanan maksimal yang di-cache dan sementara: IOPS/MBps (ukuran cache dalam GiB) Throughput disk maksimal yang tidak di-cache: IOPS/MBps NIC Maksimum Bandwidth jaringan yang diharapkan (Mbps)
Standard_D32s_v3 32 128 256 32 64000/512 (800) 51200/768 8 16000

Screenshot that shows the performance test configuration.

Multi-utas/beberapa file dengan SMB Multichannel

Beban dihasilkan terhadap 10 file dengan berbagai ukuran IO. Hasil pengujian peningkatan skala menunjukkan peningkatan yang signifikan dalam hasil pengujian IOPS dan throughput dengan SMB Multichannel diaktifkan. Diagram berikut menggambarkan hasilnya:

Diagram of performance.

Diagram of throughput performance.

  • Pada satu NIC, untuk baca, peningkatan performa 2x-3x diamati dan untuk tulis, peningkatan 3x-4x dalam hal IOPS dan throughput.
  • SMB Multichannel memungkinkan IOPS dan throughput mencapai batas VM bahkan dengan satu NIC dan empat batas saluran.
  • Karena egress (atau baca ke penyimpanan) tidak diukur, throughput baca dapat melebihi batas VM yang diterbitkan sebesar 16.000 Mbps (2 GiB/dtk). Pengujian mencapai >2,7 GiB/dtk. Ingress (atau tulis ke penyimpanan) masih mematuhi batas VM.
  • Menyebarkan beban melalui beberapa file memungkinkan penyempurnaan yang substansial.

Contoh perintah yang digunakan dalam pengujian ini adalah:

diskspd.exe -W300 -C5 -r -w100 -b4k -t8 -o8 -Sh -d60 -L -c2G -Z1G z:\write0.dat z:\write1.dat z:\write2.dat z:\write3.dat z:\write4.dat z:\write5.dat z:\write6.dat z:\write7.dat z:\write8.dat z:\write9.dat .

Beban kerja multi-thread/file tunggal dengan SMB Multichannel

Beban dihasilkan terhadap satu file 128 GiB. Dengan mengaktifkan SMB Multichannel, pengujian peningkatan skala dengan multi-thread/file tunggal menunjukkan peningkatan dalam banyak kasus. Diagram berikut menggambarkan hasilnya:

Diagram of IOPS performance.

Diagram of single file throughput performance.

  • Pada satu NIC dengan ukuran I/O rata-rata yang lebih besar (> ~16k), ada peningkatan signifikan dalam baca dan tulis.
  • Untuk ukuran I/O yang lebih kecil, ada sedikit dampak ~10% pada performa dengan SMB Multichannel diaktifkan. Ini dapat dikurangi dengan menyebarkan beban melalui beberapa file, atau menonaktifkan fitur.
  • Performa masih terikat oleh batas file tunggal.

Penembolokan metadata untuk berbagi file SMB premium

Penembolokan metadata adalah peningkatan untuk berbagi file premium SMB Azure yang bertujuan untuk mengurangi latensi metadata, meningkatkan IOPS yang tersedia, dan meningkatkan throughput jaringan. Fitur pratinjau ini meningkatkan API metadata berikut dan dapat digunakan dari klien Windows dan Linux:

  • Membuat
  • Buka
  • Tutup
  • Delete

Untuk onboarding, daftar untuk pratinjau publik dan kami akan memberi Anda detail tambahan. Saat ini fitur pratinjau ini hanya tersedia untuk berbagi file SMB premium (berbagi file dalam jenis akun penyimpanan FileStorage). Tidak ada biaya tambahan yang terkait dengan penggunaan fitur ini.

Ketersediaan regional

Saat ini pratinjau penembolokan metadata hanya tersedia di wilayah Azure berikut.

  • Australia Timur
  • Brasil Tenggara
  • Prancis Selatan
  • Jerman Barat Tengah
  • Swiss Utara
  • UAE Tengah
  • Arab Saudi Utara
  • Barat Sentral AS

Peningkatan performa dengan penembolokan metadata

Sebagian besar beban kerja atau pola penggunaan yang berisi metadata dapat memperoleh manfaat dari penembolokan metadata. Untuk menentukan apakah beban kerja Anda berisi metadata, Anda dapat menggunakan Azure Monitor untuk membagi transaksi berdasarkan dimensi API.

Beban kerja dan pola penggunaan metadata-heavy yang khas meliputi:

  • Layanan web/aplikasi
  • Tugas DevOps
  • Pekerjaan pengindeksan/batch
  • Desktop virtual dengan direktori rumah atau beban kerja lain yang terutama berinteraksi dengan banyak file kecil, direktori, atau handel

Diagram berikut menggambarkan hasil potensial.

Mengurangi latensi metadata

Dengan penembolokan file dan jalur direktori untuk pencarian di masa mendatang, penembolokan metadata dapat mengurangi latensi pada file dan direktori yang sering diakses sebesar 30% atau lebih untuk beban kerja berat metadata dalam skala besar.

Chart showing latency in milliseconds with and without metadata caching.

Meningkatkan IOPS yang tersedia

Penembolokan metadata dapat meningkatkan IOPS yang tersedia lebih dari 60% untuk beban kerja metadata-heavy dalam skala besar.

Chart showing available IOPS with and without metadata caching.

Meningkatkan throughput jaringan

Penembolokan metadata dapat meningkatkan throughput jaringan lebih dari 60% untuk beban kerja berat metadata dalam skala besar.

Chart showing network throughput with and without metadata caching.

Langkah berikutnya