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).
Aşağıdaki grafik, premium blok blobu depolama hesabına uygulandığında da aynı etkiyi gösterir.
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.
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 READDIR
READIRPLUS
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
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.
Başlamak için bkz . Ağ Dosya Sistemi (NFS) 3.0 protokolunu kullanarak Blob depolamayı bağlama.