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 download
ayarlayı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 1000
bü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-level
ERROR
göz önünde bulundurun. Bu şekilde AzCopy yalnızca hataları günlüğe kaydeder. Varsayılan olarak, değer günlüğü düzeyi olarak INFO
ayarlanır.
Uzunluk denetimini kapatma
Dosyaları karşıya yüklüyor veya indiriyorsanız kopyalama ve eşitleme komutlarınızı olarak ayarlamayı --check-length
false
gö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 32
ayarlanı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 ifSourceNewer
ayarlayı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 true
prompt
ayarlanmış 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.