SMB Azure dosya paylaşımı performansını geliştirme

Bu makalede, Çok Kanallı SMB ve meta veri önbelleğe alma (önizleme) gibi premium SMB Azure dosya paylaşımları için performansı nasıl geliştirebileceğiniz açıklanmaktadır.

Şunlara uygulanır

Dosya paylaşımı türü SMB NFS
Standart dosya paylaşımları (GPv2), LRS/ZRS No No
Standart dosya paylaşımları (GPv2), GRS/GZRS No No
Premium dosya paylaşımları (filestorage), LRS/ZRS Yes No

Performansı iyileştirme

Aşağıdaki ipuçları performansı iyileştirmenize yardımcı olabilir:

  • Ağ gecikme süresini azaltmak için depolama hesabınızın ve istemcinizin aynı Azure bölgesinde birlikte bulunduğundan emin olun.
  • Çok iş parçacıklı uygulamalar kullanın ve yükü birden çok dosyaya yayın.
  • Çok Kanallı SMB'nin performans avantajları, yük dağıtan dosyaların sayısıyla artar.
  • Premium paylaşım performansı, sağlanan paylaşım boyutuna (IOPS/çıkış/giriş) ve tek dosya sınırlarına bağlıdır. Ayrıntılar için bkz . Premium dosya paylaşımları için sağlamayı anlama.
  • Tek bir VM istemcisinin en yüksek performansı yine de VM sınırlarına bağlıdır. Örneğin, Standard_D32s_v3 en fazla 16.000 MB/sn (veya 2GB/sn) bant genişliğini destekleyebilir; VM'den çıkış (depolamaya yazma) ölçülür, giriş (depolamadan okuma) ölçülür. Dosya paylaşımı performansı makine ağ sınırlarına, CPU'lara, dahili depolama kullanılabilir ağ bant genişliğine, GÇ boyutlarına, paralelliğe ve diğer faktörlere tabidir.
  • İlk test genellikle bir ısınmadır. Sonuçları atın ve testi tekrarlayın.
  • Performans tek bir istemciyle sınırlıysa ve iş yükü hala sağlanan paylaşım sınırlarının altındaysa, yükü birden çok istemciye yayarak daha yüksek performans elde edebilirsiniz.

IOPS, aktarım hızı ve G/Ç boyutları arasındaki ilişki

Aktarım hızı = GÇ boyutu * IOPS

Daha yüksek G/Ç boyutları daha yüksek aktarım hızı sağlar ve daha yüksek gecikme süresine sahip olur ve bu da net IOPS sayısının düşmesine neden olur. Daha küçük G/Ç boyutları daha yüksek IOPS sağlar, ancak daha düşük net aktarım hızı ve gecikme süresine neden olur. Daha fazla bilgi edinmek için bkz. Azure Dosyalar performansını anlama.

SMB Çok Kanal

Çok Kanallı SMB, bir SMB dosya paylaşımına birden fazla ağ bağlantısı kurmak için SMB 3.x istemcisini etkinleştirir. Azure Dosyalar, Windows istemcileri için premium dosya paylaşımlarında (Dosya Depolama depolama hesabı türünde dosya paylaşımları) Çok Kanallı SMB'yi destekler. Hizmet tarafında, çok kanallı SMB Azure Dosyalar varsayılan olarak devre dışı bırakılır, ancak etkinleştirmenin ek bir maliyeti yoktur.

Sosyal haklar

Çok Kanallı SMB, istemcilerin daha yüksek performans sağlarken sahip olma maliyetini düşüren birden çok ağ bağlantısı kullanmasını sağlar. Birden çok NIC üzerinde bant genişliği toplama ve G/Ç yükünü birden çok CPU'ya dağıtmak için NIC'ler için Alma Tarafı Ölçeklendirme (RSS) desteği kullanılarak artan performans elde edilir.

  • Daha yüksek aktarım hızı: Birden çok bağlantı, verilerin paralel olarak birden çok yol üzerinden aktarılmasına olanak sağlar ve bu sayede daha büyük G/Ç boyutlarına sahip daha büyük dosya boyutları kullanan ve tek bir VM'den veya daha küçük bir VM kümesinden yüksek aktarım hızı gerektiren iş yüklerinden önemli ölçüde yararlanır. Bu iş yüklerinden bazıları içerik oluşturma veya kodlama, genomiks ve finansal hizmetler risk analizi için medya ve eğlenceyi içerir.
  • Daha yüksek IOPS: NIC RSS özelliği, birden çok bağlantıya sahip birden çok CPU arasında etkili yük dağıtımı sağlar. Bu, daha yüksek IOPS ölçeğine ve VM CPU'larının etkili kullanımına yardımcı olur. Bu, veritabanı uygulamaları gibi küçük G/Ç boyutlarına sahip iş yükleri için kullanışlıdır.
  • Ağ hataya dayanıklılık: İstemciler artık tek bir bağlantıya güvenmediğinden birden çok bağlantı kesinti riskini azaltır.
  • Otomatik yapılandırma: çok kanallı SMB istemcilerde ve depolama hesaplarında etkinleştirildiğinde, mevcut bağlantıların dinamik olarak bulunmasına olanak tanır ve gerektiğinde ek bağlantı yolları oluşturabilir.
  • Maliyet iyileştirme: İş yükleri, premium paylaşımlara bağlanırken tek bir VM'den veya küçük bir VM kümesinden daha yüksek ölçek elde edebilir. Bu, bir iş yükünü çalıştırmak ve yönetmek için gereken VM sayısını azaltarak toplam sahip olma maliyetini azaltabilir.

Çok Kanallı SMB hakkında daha fazla bilgi edinmek için Windows belgelerine bakın.

Bu özellik, çok iş parçacıklı uygulamalar için daha fazla performans avantajı sağlar, ancak genellikle tek iş parçacıklı uygulamalara yardımcı olmaz. Diğer ayrıntılar için Performans karşılaştırması bölümüne bakın.

Sınırlamalar

Azure dosya paylaşımları için Çok Kanallı SMB şu anda aşağıdaki kısıtlamalara sahiptir:

  • Yalnızca SMB 3.1.1 kullanan Windows istemcilerinde desteklenir. SMB istemci işletim sistemlerinin önerilen düzeylere yamalandığından emin olun.
  • Şu anda Linux istemcileri için desteklenmiyor veya önerilmez.
  • En fazla kanal sayısı dört'tür. Ayrıntılar için buraya bakın.

Yapılandırma

Çok Kanallı SMB yalnızca özellik hem istemci tarafında (istemciniz) hem de hizmet tarafında (Azure depolama hesabınız) etkinleştirildiğinde çalışır.

Windows istemcilerinde, Çok Kanallı SMB varsayılan olarak etkindir. Aşağıdaki PowerShell komutunu çalıştırarak yapılandırmanızı doğrulayabilirsiniz:

Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel

Azure depolama hesabınızda Çok Kanallı SMB'yi etkinleştirmeniz gerekir. Bkz . Çok Kanallı SMB'yi etkinleştirme.

Çok Kanallı SMB'yi devre dışı bırakma

Çok iş parçacıklı iş yükleri başta olmak üzere çoğu senaryoda istemcilerin çok kanallı SMB ile iyileştirilmiş performans görmesi gerekir. Ancak, tek iş parçacıklı iş yükleri gibi bazı belirli senaryolarda veya test amacıyla SMB Çok Kanallı'yı devre dışı bırakmak isteyebilirsiniz. Diğer ayrıntılar için bkz . Performans karşılaştırması .

Çok Kanallı SMB'nin doğru yapılandırıldığını doğrulama

  1. Yeni bir premium dosya paylaşımı oluşturun veya mevcut premium paylaşımı kullanın.
  2. İstemcinizin Çok Kanallı SMB'yi desteklediğine emin olun (bir veya daha fazla ağ bağdaştırıcısında alma tarafı ölçeklendirme etkindir). Daha fazla ayrıntı için Windows belgelerine bakın.
  3. İstemcinize bir dosya paylaşımı bağlayın.
  4. Uygulamanızla yük oluşturun. Robocopy /MT gibi bir kopyalama aracı veya Diskspd gibi dosyaları okumak/yazmak için herhangi bir performans aracı yük oluşturabilir.
  5. PowerShell'i yönetici olarak açın ve aşağıdaki komutu kullanın: Get-SmbMultichannelConnection |fl
  6. MaxChannels ve CurrentChannels özelliklerini arayın.

Screenshot of Get-SMBMultichannelConnection results.

Performans karşılaştırması

okuma/yazma iş yükü desenlerinin iki kategorisi vardır: tek iş parçacıklı ve çok iş parçacıklı. çoğu iş yükü birden çok dosya kullanır, ancak iş yükünün bir paylaşımdaki tek bir dosyayla çalıştığı belirli kullanım örnekleri olabilir. Bu bölüm, farklı kullanım örneklerini ve bunların her biri için performans etkisini kapsar. Genel olarak, çoğu iş yükü çok iş parçacıklıdır ve iş yükünü birden çok dosyaya dağıtır, bu nedenle SMB Çok Kanallı ile önemli performans iyileştirmeleri gözlemlemelidir.

  • Çok iş parçacıklı/birden çok dosya: İş yükü düzenine bağlı olarak, birden çok kanal üzerinden okuma ve yazma G/Ç'lerinde önemli performans artışı görmeniz gerekir. Performans kazançları IOPS, aktarım hızı ve gecikme süresi açısından 2x ile 4x arasında herhangi bir yerden farklılık gösterir. Bu kategori için en iyi performans için Çok Kanallı SMB etkinleştirilmelidir.
  • Çok iş parçacıklı/tek dosya: Bu kategorideki çoğu kullanım örneğinde iş yükleri, özellikle iş yükünün ortalama G/Ç boyutu > ~16k olduğunda çok kanallı SMB'nin etkinleştirilmesinden yararlanır. Çok Kanallı SMB'den yararlanan birkaç örnek senaryo, tek bir büyük dosyanın yedeklenip kurtarılmasıdır. Çok Kanallı SMB'yi devre dışı bırakmak isteyebileceğiniz bir özel durum, iş yükünüzün küçük G/Ç'lerde ağır olmasıdır. Bu durumda, yaklaşık %10'lık bir performans kaybı gözlemleyebilirsiniz. Kullanım örneğine bağlı olarak, yükü birden çok dosyaya yaymayı veya özelliği devre dışı bırakmayı göz önünde bulundurun. Ayrıntılar için Yapılandırma bölümüne bakın.
  • Tek iş parçacıklı/birden çok dosya veya tek dosya: Çoğu tek iş parçacıklı iş yükü için, paralellik eksikliğinden dolayı minimum performans avantajları vardır. Çok Kanallı SMB etkinse genellikle yaklaşık %10'lık bir performans düşüşü olur. Bu durumda, tek bir özel durum dışında Çok Kanallı SMB'yi devre dışı bırakmak idealdir. Tek iş parçacıklı iş yükü yükü birden çok dosyaya dağıtabiliyorsa ve ortalama daha büyük G/Ç boyutu (> ~16k) kullanıyorsa, Çok Kanallı SMB'nin küçük performans avantajları olmalıdır.

Performans testi yapılandırması

Bu makaledeki grafikler için şu yapılandırma kullanılmıştır: Dört kanallı tek bir RSS özellikli NIC'ye sahip tek bir Standart D32s v3 VM. Yük diskspd.exe kullanılarak, GÇ derinliği 10 olan birden çok iş parçacığı ve çeşitli G/Ç boyutlarına sahip rastgele G/Ç'ler kullanılarak oluşturulmuştur.

Size Sanal işlemci Bellek: GiB Geçici depolama (SSD) GiB Maksimum veri diskleri En fazla önbelleğe alınmış ve geçici depolama aktarım hızı: IOPS/MB/sn (GiB'de önbellek boyutu) En fazla kazınmamış disk aktarım hızı: IOPS/MB/sn En fazla NIC Beklenen ağ bant genişliği (Mb/sn)
Standard_D32s_v3 32 128 Kategori 256 32 64000/512 (800) 51200/768 8 16000

Screenshot that shows the performance test configuration.

Çok Kanallı SMB ile çok iş parçacıklı/birden çok dosya

Çeşitli GÇ boyutlarına sahip 10 dosyada yük oluşturuldu. Ölçeği artırma test sonuçları, Çok Kanallı SMB etkinleştirildiğinde hem IOPS hem de aktarım hızı test sonuçlarında önemli iyileştirmeler gösterdi. Aşağıdaki diyagramlarda sonuçlar gösterilmiştir:

Diagram of performance.

Diagram of throughput performance.

  • Tek bir NIC'de okumalar için 2x-3x performans artışı ve yazma işlemleri için hem IOPS hem de aktarım hızı açısından 3x-4x kazançlar gözlemlendi.
  • Çok Kanallı SMB, IOPS ve aktarım hızının tek bir NIC ve dört kanal sınırıyla bile VM sınırlarına erişmesine izin verdi.
  • Çıkış (veya depolamaya okuma) ölçümü yapılmadığından, okuma aktarım hızı 16.000 Mb/sn (2 GiB/sn) vm yayımlama sınırını aşabildi. Test 2,7 GiB/sn'ye ulaştı >. Giriş (veya depolamaya yazma işlemleri) yine de VM sınırlarına tabidir.
  • Yükün birden çok dosyaya yayılmasına izin verilir ve önemli geliştirmeler yapılabilir.

Bu testte kullanılan örnek komut:

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 .

Çok Kanallı SMB ile çok iş parçacıklı/tek dosyalı iş yükleri

Yük tek bir 128 GiB dosyasına göre oluşturuldu. Çok Kanallı SMB etkinleştirildiğinde, çok iş parçacıklı/tek dosyalı ölçek artırma testi çoğu durumda iyileştirmeler gösterdi. Aşağıdaki diyagramlarda sonuçlar gösterilmiştir:

Diagram of IOPS performance.

Diagram of single file throughput performance.

  • Ortalama G/Ç boyutu (> yaklaşık 16k) olan tek bir NIC'de hem okumalarda hem de yazmalarda önemli geliştirmeler yapıldı.
  • Daha küçük G/Ç boyutları için çok kanallı SMB etkinken performans üzerinde yaklaşık %10'luk bir etkisi vardı. Yükün birden çok dosyaya yayılması veya özelliğin devre dışı bırakılması bu sorunu hafifletebilir.
  • Performans yine de tek dosya sınırlarına bağlıdır.

Premium SMB dosya paylaşımları için meta veri önbelleğe alma

Meta verileri önbelleğe alma, meta veri gecikme süresini azaltmayı, kullanılabilir IOPS'yi artırmayı ve ağ aktarım hızını artırmayı amaçlayan SMB Azure premium dosya paylaşımları için bir geliştirmedir. Bu önizleme özelliği aşağıdaki meta veri API'lerini geliştirir ve hem Windows hem de Linux istemcilerinden kullanılabilir:

  • Oluşturma
  • Açılış
  • Kapat
  • Sil

Eklemek için genel önizlemeye kaydolun; size ek ayrıntılar sağlayacağız. Şu anda bu önizleme özelliği yalnızca premium SMB dosya paylaşımlarında (Dosya Depolama depolama hesabı türünde dosya paylaşımları) kullanılabilir. Bu özelliğin kullanılmasıyla ilişkili ek maliyet yoktur.

Bölgesel kullanılabilirlik

Şu anda meta veri önbelleğe alma önizlemesi yalnızca aşağıdaki Azure bölgelerinde kullanılabilir.

  • Doğu Avustralya
  • Güney Doğu Brezilya
  • Güney Fransa
  • Orta Batı Almanya
  • Kuzey İsviçre
  • BAE Orta
  • Kuzey BAE
  • ABD Orta Batı

Meta veri önbelleğe alma ile performans iyileştirmeleri

Meta veri içeren iş yüklerinin veya kullanım desenlerinin çoğu meta veri önbelleğe alma özelliğinden yararlanabilir. İş yükünüzün meta veriler içerip içermediğini belirlemek için Azure İzleyici'yi kullanarak işlemleri API boyutuna göre bölebilirsiniz.

Meta veri ağırlıklı tipik iş yükleri ve kullanım desenleri şunlardır:

  • Web/uygulama hizmetleri
  • DevOps görevleri
  • Dizin oluşturma/toplu işler
  • Birçok küçük dosya, dizin veya tanıtıcıyla öncelikli olarak etkileşim kuran ev dizinlerine veya diğer iş yüklerine sahip sanal masaüstleri

Aşağıdaki diyagramlarda olası sonuçlar gösterilmiştir.

Meta veri gecikme süresini azaltma

Gelecekteki aramalar için dosya ve dizin yollarını önbelleğe alarak meta veri önbelleğe alma, sık erişilen dosya ve dizinlerdeki gecikme süresini büyük ölçekte meta veri yoğunluklu iş yükleri için %30 veya daha fazla azaltabilir.

Chart showing latency in milliseconds with and without metadata caching.

Kullanılabilir IOPS'leri artırma

Meta veri önbelleğe alma, uygun ölçekte meta veri ağırlıklı iş yükleri için kullanılabilir IOPS'yi %60'tan fazla artırabilir.

Chart showing available IOPS with and without metadata caching.

Ağ aktarım hızını artırma

Meta veri önbelleğe alma, büyük ölçekte meta veri ağırlıklı iş yükleri için ağ aktarım hızını %60'tan fazla artırabilir.

Chart showing network throughput with and without metadata caching.

Sonraki adımlar