Praktik terbaik performa SMB untuk Azure NetApp Files
Artikel ini membantu Anda memahami performa SMB dan praktik terbaik untuk Azure NetApp Files.
SMB Multichannel
SMB Multisaluran diaktifkan secara default dalam share SMB. Semua share SMB sebelum volume SMB yang ada telah mengaktifkan fitur ini, dan semua volume yang baru dibuat juga akan mengaktifkan fitur ini pada saat pembuatan.
Setiap koneksi SMB yang dibuat sebelum pengaktifkanan fitur perlu diatur ulang untuk memanfaatkan fungsionalitas SMB Multisaluran. Untuk mengatur ulang, Anda dapat memutuskan dan menyambungkan kembali share SMB.
Windows telah mendukung SMB Multisaluran sejak Windows 2012 untuk mengaktifkan performa terbaik. Untuk selengkapnya, lihat Menyebarkan SMB Multisaluran dan Dasar-dasar SMB Multisaluran.
Manfaat SMB Multisaluran
Fitur SMB Multisaluran memungkinkan klien SMB3 untuk membuat kumpulan koneksi melalui satu kartu antarmuka jaringan (NIC) atau beberapa NIC dan menggunakannya untuk mengirim permintaan untuk satu sesi SMB. Sebaliknya, menurut desain, SMB1 dan SMB2 mengharuskan klien untuk membuat satu koneksi dan mengirim semua lalu lintas SMB untuk sesi tertentu melalui koneksi itu. Koneksi tunggal ini membatasi performa protokol secara keseluruhan yang dapat dicapai dari satu klien.
Performa untuk SMB Multisaluran
Pengujian dan grafik berikut menunjukkan kekuatan SMB Multisaluran pada beban kerja instans tunggal.
I/O acak
Dengan SMB Multichannel dinonaktifkan pada klien, uji baca dan tulis 4 KiB murni dilakukan menggunakan FIO dan set kerja 40 GiB. Share SMB dilepas di antara setiap pengujian, dengan peningkatan jumlah koneksi klien SMB per pengaturan antarmuka jaringan RSS 1
, 4
, 8
, 16
, set-SmbClientConfiguration -ConnectionCountPerRSSNetworkInterface <count>
. Tes ini menunjukkan bahwa pengaturan default 4
cukup untuk beban kerja intensif I /O; meningkatkan ke 8
dan 16
memiliki efek yang dapat diabaikan.
Perintah netstat -na | findstr 445
membuktikan bahwa koneksi tambahan dibuat dengan kenaikan dari ke 1
ke 4
ke 8
dan ke 16
. Empat inti CPU sepenuhnya digunakan untuk SMB selama setiap uji, sebagaimana dikonfirmasi oleh statistik Per Processor Network Activity Cycles
perfmon (tidak termasuk dalam artikel ini.)
Komputer virtual Azure tidak mempengaruhi batas I/O penyimpanan SMB (atau NFS). Seperti yang ditunjukkan pada bagan berikut, jenis instans D32ds memiliki tingkat terbatas 308.000 untuk IOPS penyimpanan di cache dan 51.200 untuk IOPS penyimpanan yang tidak di cache. Namun, grafik di atas menunjukkan I/O yang jauh lebih banyak daripada SMB.
IO Berurutan
Uji yang mirip dengan uji I/O acak yang dijelaskan sebelumnya dilakukan dengan I/O berurutan 64-KiB. Meskipun peningkatan jumlah koneksi klien per antarmuka jaringan RSS di luar 4' tidak memiliki efek nyata pada I/O acak, hal yang sama tidak berlaku untuk I/O berurutan. Seperti yang ditunjukkan oleh grafik berikut, setiap peningkatan dikaitkan dengan peningkatan throughput baca yang sesuai. Throughput tulis tetap datar karena pembatasan bandwidth jaringan yang ditempatkan oleh Azure untuk setiap jenis/ukuran instans.
Azure menempatkan batas laju jaringan pada setiap jenis/ukuran komputer virtual. Batas laju hanya diberlakukan pada lalu lintas keluar. Jumlah NIC yang ada pada komputer virtual tidak berpengaruh pada jumlah total bandwidth yang tersedia untuk komputer. Misalnya, jenis instans D32ds memiliki batas jaringan yang diberlakukan sebesar 16.000 Mbps (2.000 MiB/s). Seperti yang ditunjukkan grafik berurutan di atas, batas tersebut mempengaruhi lalu lintas keluar (tulis) tetapi tidak lalu lintas baca multisaluran.
SMB Signing
Protokol SMB menyediakan dasar untuk berbagi file dan cetak serta operasi jaringan lainnya seperti administrasi Windows jarak jauh. Untuk mencegah serangan man-in-the-middle yang memodifikasi paket SMB saat transit, protokol SMB mendukung penandatanganan paket SMB secara digital.
Penandatanganan SMB didukung untuk semua versi protokol SMB yang didukung oleh Azure NetApp Files.
Dampak performa penandatanganan SMB
Penandatanganan SMB memiliki efek buruk pada performa SMB. Di antara potensi penyebab lain dari penurunan performa, penandatanganan digital setiap paket mengkonsumsi CPU sisi klien tambahan seperti yang ditunjukkan oleh output perfmon di bawah ini. Dalam hal ini, Core 0 tampak bertanggung jawab atas SMB, termasuk Penandatanganan SMB. Perbandingan dengan nomor throughput baca berurutan non-multisaluran di bagian sebelumnya menunjukkan bahwa Penandatanganan SMB mengurangi keseluruhan throughput dari 875MiB/s menjadi sekitar 250MiB/s.
Performa untuk satu instans dengan himpunan data 1-TB
Untuk memberikan wawasan yang lebih rinci tentang beban kerja dengan campuran baca/tulis, dua bagan berikut menunjukkan performa volume cloud tingkat layanan Ultra tunggal 50 TB dengan himpunan data 1-TB dan dengan SMB multisaluran 4. IODepth optimal 16 digunakan, dan parameter Flexible IO (FIO) digunakan untuk memastikan penggunaan penuh bandwidth jaringan (numjobs=16
).
Bagan berikut menunjukkan hasil untuk I/O acak 4k, dengan satu instans VM dan campuran baca/tulis pada interval 10%:
Bagan berikut ini memperlihatkan hasil untuk I/O berurutan:
Performa saat penskalaan menggunakan 5 VM dengan himpunan data 1-TB
Pengujian dengan 5 VM ini menggunakan lingkungan pengujian yang sama dengan VM tunggal, dengan setiap proses menulis ke filenya sendiri.
Bagan berikut ini memperlihatkan hasil untuk I/O acak:
Bagan berikut ini memperlihatkan hasil untuk I/O berurutan:
Cara memantau adapter ethernet Hyper-V
Salah satu strategi yang digunakan dalam pengujian dengan FIO adalah mengatur numjobs=16
. Melakukanhal tersebut, membagi setiap pekerjaan ke dalam 16 instans tertentu untuk memaksimalkan Microsoft Hyper-V Network Adapter.
Anda dapat memeriksa aktivitas pada setiap adaptor di Monitor Performa Windows dengan memilih Monitor Performa Tambahkan Penghitung >> Antarmuka > Jaringan Microsoft Hyper-V Network Adapter.
Setelah Anda menjalankan lalu lintas data dalam volume, Anda dapat memantau adapter Anda di Windows Performance Monitor. Jika Anda tidak menggunakan semua dari 16 adapter virtual ini, Anda mungkin tidak memaksimalkan kapasitas bandwidth jaringan Anda.
Enkripsi SMB
Bagian ini membantu Anda memahami enkripsi SMB (SMB 3.0 dan SMB 3.1.1)
Enkripsi SMB menyediakan enkripsi data SMB end-to-end dan melindungi data dari kejadian pasang telinga pada jaringan yang tidak terpercaya. Enkripsi SMB didukung pada SMB 3.0 dan yang lebih besar.
Saat mengirim permintaan ke penyimpanan, klien mengenkripsi permintaan, yang kemudian didekripsi penyimpanan. Respons dienkripsi dengan cara yang sama oleh server dan didekripsi oleh klien.
Windows 10, Windows 2012, dan versi yang lebih baru mendukung enkripsi SMB.
Enkripsi SMB dan Azure NetApp Files
Enkripsi SMB diaktifkan di tingkat berbagi untuk Azure NetApp Files. SMB 3.0 menggunakan algoritma AES-CCM, sedangkan SMB 3.1.1 menggunakan algoritma AES-GCM.
Enkripsi SMB tidak diperlukan. Dengan demikian, enkripsi hanya diaktifkan untuk share yang diberikan jika pengguna meminta agar Azure NetApp Files mengaktifkannya. Share Azure NetApp Files tidak pernah terekspos ke internet. Share Azure NetApp Files hanya dapat diakses dari dalam VNet tertentu, melalui VPN atau rute ekspres, sehingga share Azure NetApp Files secara inheren aman. Pilihan untuk mengaktifkan enkripsi SMB sepenuhnya terserah pengguna. Waspadai penalti performa yang diantisipasi sebelum mengaktifkan fitur ini.
Dampak enkripsi SMB pada beban kerja klien
Meskipun enkripsi SMB berdampak pada klien (overhead CPU untuk mengenkripsi dan mendekripsi pesan) dan penyimpanan (pengurangan throughput), tabel berikut hanya menyoroti dampak penyimpanan. Anda harus menguji dampak performa enkripsi terhadap aplikasi Anda sendiri sebelum menerapkan beban kerja ke dalam produksi.
Profil I/O | Dampak |
---|---|
Beban kerja baca dan tulis | 10% hingga 15% |
Metadata intensif | 5% |
Penjaringan Dipercepat
Untuk kinerja maksimum, disarankan agar Anda mengonfigurasi Jaringan Dipercepat pada komputer virtual Anda jika memungkinkan. Ingatlah pertimbangan berikut:
- Portal Microsoft Azure memungkinkan Jaringan Dipercepat secara default untuk komputer virtual yang mendukung fitur ini. Namun, metode penyebaran lain seperti Ansible dan alat konfigurasi serupa mungkin tidak. Kegagalan untuk mengaktifkan Jaringan Dipercepat dapat membuat performa komputer tertatih-tatih.
- Jika Jaringan Dipercepat tidak diaktifkan pada antarmuka jaringan komputer virtual akibat kurangnya dukungan untuk jenis atau ukuran instans, Jaringan Dipercepat akan tetap dinonaktifkan pada jenis instans yang lebih besar. Anda akan membutuhkan intervensi manual dalam kasus-kasus tersebut.
- Tidak perlu mengatur jaringan yang dipercepat untuk NIC di subnet khusus Azure NetApp Files. Jaringan yang dipercepat adalah kemampuan yang hanya berlaku untuk komputer virtual Azure. NIC Azure NetApp Files dioptimalkan berdasarkan desain.
RSS
Azure NetApp Files mendukung receive-side-scaling (RSS).
Dengan diaktifkannya SMB Multisaluran, klien SMB3 membuat beberapa koneksi TCP ke server SMB Azure NetApp Files melalui kartu antarmuka jaringan (NIC) yang mampu melakukan RSS tunggal.
Untuk melihat apakah NIC komputer virtual Azure Anda mendukung RSS, jalankan perintah Get-SmbClientNetworkInterface
sebagai berikut dan periksa bidang RSS Capable
:
Beberapa NIC pada klien SMB
Anda tidak boleh mengonfigurasi beberapa NIC pada klien Anda untuk SMB. Klien SMB akan mencocokkan jumlah NIC yang dikembalikan oleh server SMB. Setiap volume penyimpanan dapat diakses dari satu dan hanya satu titik akhir penyimpanan. Itu berarti bahwa hanya satu NIC yang akan digunakan untuk setiap hubungan SMB yang diberikan.
Seperti yang ditunjukkan oleh output Get-SmbClientNetworkInterace
di bawah ini, komputer virtual tersebut memiliki 2 antarmuka jaringan--15 dan 12. Seperti yang ditunjukkan di bawah perintah Get-SmbMultichannelConnection
berikut, meskipun ada dua NICS berkemampuan RSS, hanya antarmuka 12 yang digunakan sehubungan dengan share SMB; antarmuka 15 tidak digunakan.
Langkah berikutnya
- Tanya Jawab Umum SMB
- Lihat Azure NetApp Files: Share File Enterprise Terkelola untuk Beban Kerja SMB tentang menggunakan share file SMB dengan Azure NetApp Files.