Azure Blob depolamada Ağ Dosya Sistemi (NFS) 3.0 performans konuları

Blob depolama artık Ağ Dosya Sistemi (NFS) 3.0 protokolunu destekliyor. Bu makale, depolama isteklerinizin performansını iyileştirmenize yardımcı olan öneriler içerir. Azure Blob Depolama için NFS 3.0 desteği hakkında daha fazla bilgi edinmek için bkz. Azure Blob depolama için Ağ Dosya Sistemi (NFS) 3.0 protokol desteği.

Aktarım hızını artırmak için istemci ekleme

Azure Blob Depolama, maksimum depolama hesabı çıkış ve giriş sınırına ulaşana kadar doğrusal olarak ölçeklendirilir. Bu nedenle, uygulamalarınız daha fazla istemci kullanarak daha yüksek aktarım hızı elde edebilir. Depolama hesabı çıkış ve giriş sınırlarını görüntülemek için bkz. Standart depolama hesapları için ölçeklenebilirlik ve performans hedefleri.

Aşağıdaki grafik, siz daha fazla istemci ekledikçe bant genişliğinin nasıl arttığını gösterir. Bu grafikte istemci, standart genel amaçlı v2 depolama hesabına sahip bir Sanal Makinedir (VM).

Standart performans

Aşağıdaki grafik, premium blok blobu depolama hesabına uygulandığında da aynı etkiyi gösterir.

Premium performans

Küçük ölçekli uygulamalar için premium blok blobu depolama hesaplarını kullanma

Tüm uygulamalar daha fazla istemci ekleyerek ölçeği artıramayabilir. Bu uygulamalar için Azure premium blok blobu depolama hesabı tutarlı düşük gecikme süresi ve yüksek işlem hızları sunar. Premium blok blobu depolama hesabı, daha az iş parçacığı ve istemciyle maksimum bant genişliğine ulaşabilir. Örneğin, tek bir istemcide premium blok blobu depolama hesabı, standart performans genel amaçlı v2 depolama hesabıyla kullanılan kuruluma kıyasla 2,3 kat bant genişliği elde edebilir.

Aşağıdaki grafikteki her çubuk, premium ve standart performans depolama hesapları arasındaki elde edilen bant genişliği farkını gösterir. İstemci sayısı arttıkça bu fark azalır.

Göreli performans

Büyük dosya okuma aktarım hızını artırmak için önceden okuma boyutunu geliştirme

read_ahead_kb çekirdek parametresi, belirli bir okuma isteği yerine getirildikten sonra okunması gereken ek veri miktarını temsil eder. Büyük dosya okuma aktarım hızını geliştirmek için bu parametreyi 16 MiB'ye yükseltebilirsiniz.

export AZMNT=/your/container/mountpoint

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

Veriler üzerinde sık sık üzerine yazmaktan kaçının

Üzerine yazma işleminin tamamlanması yeni yazma işleminden daha uzun sürer. Bunun nedeni, NFS üzerine yazma işleminin, özellikle de kısmi yerinde dosya düzenlemesinin temel alınan birkaç blob işleminin bir bileşimi olmasıdır: okuma, değiştirme ve yazma işlemi. Bu nedenle, sık sık yerinde düzenlemeler gerektiren bir uygulama NFS özellikli blob depolama hesapları için uygun değildir.

Gecikmeye duyarlı uygulamalar için Azure HPC Önbelleği dağıtma

Bazı uygulamalar, yüksek aktarım hızına ek olarak düşük gecikme süresi gerektirebilir. Gecikme süresini önemli ölçüde geliştirmek için Azure HPC Önbelleği dağıtabilirsiniz. Blob depolamada gecikme süresi hakkında daha fazla bilgi edinin.

TCP bağlantısı sayısını artırma

Yalnızca Linux çekirdeğinizde Azure nconnect desteği varsa, tek bir VM'den daha yüksek toplama okuma ve yazma performansı elde etmek için bağlama seçeneğini kullanabilirsiniznconnect.

nconnect , istemci ile Blob hizmet uç noktası arasında birden çok TCP bağlantısı kullanmanıza olanak tanıyan bir istemci tarafı Linux bağlama seçeneğidir. Oluşturmak istediğiniz TCP bağlantısı sayısını belirtmek için bağlama komutundaki seçeneğini kullanabilirsiniz nconnect (örneğin: 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).

Önemli

En son Linux dağıtımları nconnect'i tam olarak desteklese de, bu seçeneği yalnızca çekirdeğinizde Azure nconnect desteği varsa kullanmanız gerekir. nconnect Azure nconnect desteği olmadan bağlama seçeneğinin kullanılması aktarım hızını azaltır, birden çok zaman aşımına neden olur ve ve gibi READDIRREADIRPLUS komutların yanlış çalışmasına neden olur.

Azure nconnect desteği, Azure sanal makineleriyle kullanılabilen en son Ubuntu kernals ile kullanılabilir. Çekirdeğiniz için Azure nconnect desteği olup olmadığını öğrenmek için aşağıdaki komutu çalıştırın.

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

Çekirdeğiniz Yes için Azure nconnect desteği varsa konsola yazdırılır. Aksi takdirde konsola 'No yazdırılır.

Azure nconnect desteği varsa aşağıdaki komutu çalıştırarak etkinleştirin.

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

Diğer en iyi uygulama önerileri

  • Yeterli ağ bant genişliğine sahip VM'leri kullanın.

  • İş yükleriniz izin verdiyse birden çok bağlama noktası kullanın.

  • Mümkün olduğunca çok iş parçacığı kullanın.

  • Büyük blok boyutları kullanın.

  • Depolama hesabıyla aynı bölgede bulunan bir istemciden depolama istekleri oluşturun. Bu, ağ gecikme süresini iyileştirebilir.

Sonraki adımlar