Pertimbangan kinerja Network File System (NFS) 3.0 di penyimpanan Azure Blob

Penyimpanan blob sekarang mendukung protokol Network File System (NFS) 3.0. Artikel ini berisi rekomendasi yang membantu Anda untuk mengoptimalkan kinerja permintaan penyimpanan Anda.Artikel ini berisi rekomendasi yang membantu Anda mengoptimalkan kinerja permintaan penyimpanan Anda. Untuk mempelajari selengkapnya tentang dukungan NFS 3.0 di Azure Blob Storage, lihat Dukungan protokol Sistem File Jaringan (NFS) 3.0 untuk penyimpanan Azure Blob.

Menambahkan klien untuk meningkatkan throughput

Penyimpanan Blob Azure menskalakan secara linear hingga mencapai batas keluar dan masuk akun penyimpanan maksimum. Oleh karena itu, aplikasi Anda dapat mencapai throughput yang lebih tinggi dengan menggunakan lebih banyak klien. Untuk melihat keluarnya akun penyimpanan dan batas masuknya, lihat Skalabilitas dan target performa untuk akun penyimpanan standar.

Bagan berikut ini memperlihatkan bagaimana bandwidth meningkat saat Anda menambahkan lebih banyak klien. Dalam bagan ini, klien adalah Mesin Virtual (VM) dan dengan akun penyimpanan v2 tujuan umum standar.

Performa standar

Bagan berikut menunjukkan efek yang sama saat diterapkan ke akun penyimpanan blob blok premium.

Performa premium

Gunakan akun penyimpanan blob blok premium untuk aplikasi skala kecil

Tidak semua aplikasi dapat meningkatkan dengan menambahkan lebih banyak klien. Untuk aplikasi tersebut, akun penyimpanan gumpalan blok premium Azure menawarkan latensi rendah yang konsisten dan tingkat transaksi yang tinggi. Akun penyimpanan gumpalan blok premium dapat mencapai bandwidth maksimum dengan lebih sedikit thread dan klien. Misalnya, dengan satu klien, akun penyimpanan gumpalan blok premium dapat mencapai bandwidth 2,3x dibandingkan dengan pengaturan yang sama yang digunakan dengan akun penyimpanan v2 tujuan umum kinerja standar.

Setiap batang dalam bagan berikut menunjukkan perbedaan bandwidth yang dicapai antara akun penyimpanan kinerja premium dan standar. Ketika jumlah klien meningkat, perbedaan itu menurun.

Performa relatif

Meningkatkan ukuran read ahead untuk meningkatkan throughput pembacaan file besar

Parameter kernel read_ahead_kb mewakili jumlah data tambahan yang harus dibaca setelah memenuhi permintaan pembacaan yang diberikan. Anda bisa meningkatkan parameter ini menjadi 16MB untuk meningkatkan throughput pembacaan file besar.

export AZMNT=/your/container/mountpoint

echo 16384 > /sys/class/bdi/0:$(stat -c "%d" $AZMNT)/read_ahead_kb

Hindari penimpaan data yang sering

Dibutuhkan waktu lebih lama untuk menyelesaikan operasi timpa daripada operasi penulisan baru. Itu karena operasi timpa NFS, terutama pengeditan file di tempat parsial, adalah kombinasi dari beberapa operasi gumpalan yang mendasarinya: baca, modifikasi, dan operasi tulis. Oleh karena itu, aplikasi yang sering mengharuskan pengeditan di tempat tidak cocok untuk akun penyimpanan gumpalan yang diaktifkan NFS.

Meyebarkan Azure HPC Cache untuk aplikasi peka latensi

Beberapa aplikasi mungkin memerlukan latensi rendah selain throughput tinggi. Anda dapat menggunakan Azure HPC Cache untuk meningkatkan latensi secara signifikan. Pelajari selengkapnya tentang Latensi dalam penyimpanan Blob.

Menambah jumlah koneksi TCP

Anda dapat menggunakan nconnect opsi pemasangan untuk mendapatkan performa baca dan tulis agregat yang lebih tinggi dari satu VM tetapi hanya jika kernel Linux Anda memiliki dukungan Azure nconnect.

nconnect adalah opsi pemasangan Linux sisi klien yang memungkinkan Anda menggunakan beberapa koneksi TCP antara klien dan titik akhir layanan Blob. Anda dapat menggunakan nconnect opsi dalam perintah pemasangan untuk menentukan jumlah koneksi TCP yang ingin Anda buat (misalnya: mount -t aznfs -o nconnect=16,sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdatain).

Penting

Meskipun distribusi Linux terbaru sepenuhnya mendukung nconnect, Anda harus menggunakan opsi ini hanya jika kernel Anda memiliki dukungan Azure nconnect. nconnect Menggunakan opsi pemasangan tanpa dukungan Azure nconnect akan mengurangi throughput, menyebabkan beberapa waktu habis, dan menyebabkan perintah seperti READDIR dan READIRPLUS bekerja dengan tidak benar.

Dukungan nconnect Azure tersedia dengan sebagian besar kernal Ubuntu terbaru yang dapat digunakan dengan komputer virtual Azure. Untuk mengetahui apakah dukungan nconnect Azure tersedia untuk kernel Anda, jalankan perintah berikut.

[ -e /sys/module/sunrpc/parameters/enable_azure_nconnect ] && echo "Yes" || echo "No"

Jika dukungan Azure nconnect tersedia untuk kernel Anda, maka Yes dicetak ke konsol. Jika tidak, 'No dicetak ke konsol.

Jika dukungan Azure nconnect tersedia, aktifkan dengan menjalankan perintah berikut.

echo Y > /sys/module/sunrpc/parameters/enable_azure_nconnect

Rekomendasi praktik terbaik lainnya

  • Gunakan VM dengan bandwidth jaringan yang cukup.

  • Gunakan beberapa titik pemasangan saat beban kerja Anda mengizinkannya.

  • Gunakan benang sebanyak mungkin.

  • Gunakan ukuran blok besar.

  • Buat permintaan penyimpanan dari klien yang berada di wilayah yang sama dengan akun penyimpanan. Ini dapat meningkatkan latensi jaringan.

Langkah berikutnya