Azure Depolama ile AzCopy performansını iyileştirme

AzCopy, bir depolama hesabına iki yönlü blob veya dosya kopyalama işlemi gerçekleştirmenizi sağlayan bir komut satırı yardımcı programıdır. Bu makale performansı iyileştirmenize yardımcı olur.

Not

AzCopy'yi kullanmaya başlamanıza yardımcı olacak içerik arıyorsanız bkz . AzCopy'yi kullanmaya başlama

Performansı karşılaştırabilir ve ardından komutlarla ortam değişkenlerini kullanarak performans ile kaynak tüketimi arasında en uygun dengeyi bulabilirsiniz.

Kıyaslama testleri çalıştırma

Genel performans istatistiklerini görüntülemek ve performans sorunlarını belirlemek için belirli blob kapsayıcılarında veya dosya paylaşımlarında performans karşılaştırma testi çalıştırabilirsiniz. Oluşturulan test verilerini karşıya yükleyerek veya indirerek testi çalıştırabilirsiniz.

Performans karşılaştırma testi çalıştırmak için aşağıdaki komutu kullanın.

Söz dizimi

azcopy benchmark 'https://<storage-account-name>.blob.core.windows.net/<container-name>'

Örnek

azcopy benchmark 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D'

İpucu

Bu örnek, yol bağımsız değişkenlerini tek tırnak ('') içine alınmaktadır. Windows Komut Kabuğu (cmd.exe) dışında tüm komut kabuklarında tek tırnak işareti kullanın. Windows Komut Kabuğu (cmd.exe) kullanıyorsanız, yol bağımsız değişkenlerini tek tırnak ('') yerine çift tırnak ("") içine alın.

Bu komut, test verilerini belirtilen hedefe yükleyerek bir performans karşılaştırması çalıştırır. Test verileri bellekte oluşturulur, hedefe yüklenir, ardından test tamamlandıktan sonra hedeften silinir. İsteğe bağlı komut parametrelerini kullanarak kaç dosya oluşturulacağını ve hangi boyutta olmasını istediğinizi belirtebilirsiniz.

Verileri indirerek bu testi çalıştırmayı tercih ediyorsanız parametresini mode olarak downloadayarlayın. Ayrıntılı başvuru belgeleri için bkz . azcopy benchmark.

Çok sayıda dosya için iyileştirme

Çok sayıda dosya aktarılırken aktarım hızı düşebilir. Her kopyalama işlemi, depolama hizmetinde yürütülmesi gereken bir veya daha fazla işleme çevrilir. Çok sayıda dosya aktarırken, yürütülmesi gereken işlem sayısını ve depolama hesabında aynı anda başka etkinlikler gerçekleştiriliyorsa bu işlemlerin olası etkilerini göz önünde bulundurun.

Performansı en üst düzeye çıkarmak için, tek bir işte kopyalanan dosya sayısını sınırlayarak her işin boyutunu küçültebilirsiniz. İndirme ve karşıya yükleme işlemleri için gerektiğinde eşzamanlılığı artırın, günlük etkinliğini azaltın ve yüksek performans maliyetlerine neden olan özellikleri kapatın.

Her işin boyutunu küçültme

En iyi performansı elde etmek için her işin 10 milyondan az dosya aktardığından emin olun. AzCopy iş izleme mekanizması önemli miktarda ek yüke neden olduğundan, 50 milyondan fazla dosya aktaran işler kötü performans sergileyebilir. Ek yükü azaltmak için büyük işleri daha küçük işlere bölmeyi göz önünde bulundurun.

İşin boyutunu küçültmenin bir yolu, bir işten etkilenen dosya sayısını sınırlamaktır. Bunu yapmak için komut parametrelerini kullanabilirsiniz. Örneğin, bir iş azcopy copy komutunun bir parçası olarak parametresini include path kullanarak dizinlerin yalnızca bir alt kümesini kopyalayabilir .

include-pattern Belirli bir uzantıya sahip dosyaları kopyalamak için parametresini kullanın (örneğin: *.pdf). Ayrı bir işte, uzantısı olmayan *.pdf tüm dosyaları kopyalamak için parametresini kullanınexclude-pattern. Örnekler için bkz . Belirli dosyaları karşıya yükleme ve Belirli blobları indirme.

Büyük işleri daha küçük işlere bölmeye karar verdikten sonra, işleri birden fazla Sanal Makinede (VM) çalıştırmayı göz önünde bulundurun.

Eşzamanlılığı artırma

Dosyaları karşıya yüklüyor veya indiriyorsanız, makinenizde gerçekleşebilecek eşzamanlı istek sayısını artırmak için ortam değişkenini kullanın AZCOPY_CONCURRENCY_VALUE . Makinenizin performansından ödün vermeden bu değişkeni mümkün olduğunca yüksek bir değere ayarlayın. Bu değişken hakkında daha fazla bilgi edinmek için bu makalenin Eşzamanlı istek sayısını artırma bölümüne bakın.

Blobları depolama hesapları arasında kopyalanıyorsanız ortam değişkeninin değerini değerinden 1000büyük bir değere ayarlamayı AZCOPY_CONCURRENCY_VALUE göz önünde bulundurun. AzCopy sunucudan sunucuya API'leri kullandığından, veriler doğrudan depolama sunucuları arasında kopyalandığından ve makinenizin işlem gücünü kullanmadığından bu değişkeni yüksek olarak ayarlayabilirsiniz.

Oluşturulan günlük sayısını azaltma

AzCopy'nin bir işlemi tamamlarken oluşturduğu günlük girdilerinin sayısını azaltarak performansı geliştirebilirsiniz. Varsayılan olarak, AzCopy bir işlemle ilgili tüm etkinlikleri günlüğe kaydeder. En iyi performansı elde etmek için kopyalama, eşitleme veya kaldırma komutunun parametresini olarak ayarlamayı --log-levelERRORgöz önünde bulundurun. Bu şekilde AzCopy yalnızca hataları günlüğe kaydeder. Varsayılan olarak, değer günlüğü düzeyi olarak INFOayarlanır.

Uzunluk denetimini kapatma

Dosyaları karşıya yüklüyor veya indiriyorsanız kopyalama ve eşitleme komutlarınızı olarak ayarlamayı --check-lengthfalsegöz önünde bulundurun. Bu, AzCopy'nin aktarımdan sonra dosyanın uzunluğunu doğrulamasını engeller. Varsayılan olarak, AzCopy kaynak ve hedef dosyaların aktarım tamamlandıktan sonra eşleştiğinden emin olmak için uzunluğu denetler. AzCopy, her dosya aktarımının ardından bu denetimi gerçekleştirir. İşler çok sayıda küçük dosya aktardığında bu denetim performansı düşürebilir.

Eşzamanlı yerel taramayı açma (Linux)

Bazı Linux sistemlerinde dosya taramaları, tüm paralel ağ bağlantılarını doyuracak kadar hızlı yürütülemez. Bu gibi durumlarda, değerini AZCOPY_CONCURRENT_SCAN daha yüksek bir sayıya ayarlayabilirsiniz.

Eşzamanlı istek sayısını artırma

Ortam değişkenini AZCOPY_CONCURRENCY_VALUE ayarlayarak aktarım hızını artırabilirsiniz. Bu değişken gerçekleşebilecek eşzamanlı istek sayısını belirtir.

Bilgisayarınızda 5'ten az CPU varsa, bu değişkenin değeri olarak 32ayarlanır. CPU dana fazlaysa, varsayılan değer CPU sayısının 16 katına eşittir. Bu değişkenin varsayılan değeri üst sınırıdır 3000, ancak bu değeri el ile daha yüksek veya daha düşük bir değere ayarlayabilirsiniz.

İşletim sistemi Komut
Windows set AZCOPY_CONCURRENCY_VALUE=<value>
Linux export AZCOPY_CONCURRENCY_VALUE=<value>
macOS export AZCOPY_CONCURRENCY_VALUE=<value>

Bu değişkenin geçerli değerini denetlemek için öğesini azcopy env kullanın. Değer boşsa, herhangi bir AzCopy günlük dosyasının başına bakarak hangi değerin kullanıldığını okuyabilirsiniz. Seçilen değer ve seçilme nedeni burada bildirilir.

Bu değişkeni ayarlamadan önce bir karşılaştırma testi çalıştırmanızı öneririz. Karşılaştırma testi işlemi önerilen eşzamanlılık değerini bildirir. Alternatif olarak, ağ koşullarınız ve yükleriniz farklılık gösteriyorsa, bu değişkeni belirli bir sayı yerine sözcük AUTO olarak ayarlayın. Bu, AzCopy'nin karşılaştırma testlerinde kullandığı otomatik ayarlama işlemini her zaman çalıştırmasına neden olur.

Aktarım hızı veri hızını sınırlama

Aktarım hızı veri hızına cap-mbps bir tavan yerleştirmek için komutlarınızda bayrağını kullanabilirsiniz. Örneğin, aşağıdaki komut bir işi sürdürür ve aktarım hızını 10 saniyede megabit (Mb) olarak sınırlar.

azcopy jobs resume <job-id> --cap-mbps 10

Bellek kullanımını iyileştirme

AzCopy'nin AZCOPY_BUFFER_GB dosyaları indirirken ve karşıya yüklerken arabelleğe almak için kullanmasını istediğiniz en fazla sistem belleği miktarını belirtmek için ortam değişkenini ayarlayın. Bu değeri gigabayt (GB) cinsinden ifade edin.

İşletim sistemi Komut
Windows set AZCOPY_BUFFER_GB=<value>
Linux export AZCOPY_BUFFER_GB=<value>
macOS export AZCOPY_BUFFER_GB=<value>

Not

İş izleme, bellek kullanımında her zaman ek yük oluşturur. Tutar, bir işteki aktarım sayısına göre değişir. Arabellekler bellek kullanımının en büyük bileşenidir. Gereksinimlerinizi yaklaşık olarak karşılamak için komutunu kullanarak AZCOPY_BUFFER_GB ek yükü denetlemeye yardımcı olabilirsiniz, ancak genel bellek kullanımını kesinlikle sınırlayabilecek bir bayrak yoktur.

Dosya eşitlemeyi iyileştirme

Eşitleme komutu, hedefte bulunan tüm dosyaları tanımlar ve eşitleme işlemi başlatılmadan önce dosya adlarını ve son değiştirilen zaman damgalarını karşılaştırır. Çok sayıda dosyanız varsa bu ön işlemeyi ortadan kaldırarak performansı geliştirebilirsiniz.

Bunu yapmak için bunun yerine azcopy copy komutunu kullanın ve bayrağını --overwrite olarak ifSourceNewerayarlayın. AzCopy, ön tarama ve karşılaştırma gerçekleştirmeden kopyalanan dosyaları karşılaştırır. Bu, karşılaştırabileceğiniz çok sayıda dosya olduğu durumlarda bir performans avantajı sağlar.

azcopy copy komutu hedeften dosya silmez, bu nedenle artık kaynakta mevcut olmayan dosyaları hedefte silmek istiyorsanız, veya değerine truepromptayarlanmış bayrağıyla --delete-destination azcopy sync komutunu kullanın.

İşleri paralel çalıştırmak için birden çok istemci kullanma

AzCopy, istemcide yalnızca bir örnek çalıştırıldığında en iyi performansı gösterir. Dosyaları paralel olarak aktarmak istiyorsanız, birden çok istemci kullanın ve her birinde yalnızca bir AzCopy örneği çalıştırın.

Ayrıca bkz.