Share via


PowerShell'i Azure Data Lake Storage 1. Nesil ile kullanmaya yönelik performans ayarlama kılavuzu

Bu makalede, Data Lake Storage 1. Nesil ile çalışmak için PowerShell kullanırken daha iyi performans elde etmek için ayarlayabileceğiniz özellikler açıklanmaktadır.

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Özellik Varsayılan Açıklama
PerFileThreadCount 10 Bu parametre, her bir dosya karşıya yüklenirken veya indirilirken kaç paralel iş parçacığı kullanılacağını seçmenize olanak tanır. Bu sayı, dosya başına ayrılabilecek en fazla iş parçacığı sayısını temsil eder, ancak senaryonuza bağlı olarak daha az iş parçacığı alabilirsiniz (örneğin, 1 KB'lık bir dosyayı karşıya yüklüyorsanız, 20 iş parçacığı isteseniz bile bir iş parçacığı alırsınız).
ConcurrentFileCount 10 Bu parametre özellikle klasörlerin karşıya yüklenmesi ve indirilmesi içindir. Bu parametre, karşıya yüklenebilecek veya indirilebilecek eş zamanlı dosya sayısını belirler. Bu sayı, bir kerede karşıya yüklenebilecek veya indirilebilen en fazla eş zamanlı dosya sayısını temsil eder, ancak senaryonuza bağlı olarak daha az eşzamanlılık elde edebilirsiniz (örneğin, iki dosyayı karşıya yüklüyorsanız, 15 tane isteseniz bile iki eşzamanlı dosya karşıya yüklersiniz).

Örnek:

Bu komut Data Lake Storage 1. Nesil dosya başına 20 iş parçacığı ve 100 eşzamanlı dosya kullanarak dosyaları kullanıcının yerel sürücüsüne indirir.

Export-AzDataLakeStoreItem -AccountName "Data Lake Storage Gen1 account name" `
    -PerFileThreadCount 20 `
	-ConcurrentFileCount 100 `
	-Path /Powershell/100GB `
	-Destination C:\Performance\ `
	-Force `
	-Recurse

Özellik değerlerini belirleme

Bir sonraki soru, performansla ilgili özellikler için hangi değerin sağleneceğinin nasıl belirleneceğidir. Aşağıda kullanabileceğiniz bazı yönergeler verilmiştir.

  • 1. Adım: Toplam iş parçacığı sayısını belirleme - Kullanılacak toplam iş parçacığı sayısını hesaplayarak başlayın. Genel bir kılavuz olarak, her fiziksel çekirdek için altı iş parçacığı kullanmanız gerekir.

    Total thread count = total physical cores * 6

    Örnek:

    PowerShell komutlarını 16 çekirdekli bir D14 VM’den çalıştırdığınız varsayılmıştır

    Total thread count = 16 cores * 6 = 96 threads

  • 2. Adım: PerFileThreadCount Hesaplama - Dosyaların boyutuna göre PerFileThreadCount değerimizi hesaplıyoruz. 2,5 GB'tan küçük dosyalar için varsayılan 10 yeterli olduğundan bu parametreyi değiştirmeniz gerekmez. 2,5 GB'tan büyük dosyalar için, ilk 2,5 GB için temel olarak 10 iş parçacığı kullanmanız ve dosya boyutundaki her ek 256 MB artış için 1 iş parçacığı eklemeniz gerekir. Birçok farklı boyutta dosya içeren bir klasörü kopyalıyorsanız dosyaları benzer dosya boyutları halinde gruplandırmayı göz önünde bulundurun. Dosya boyutlarının benzer olmaması performansın düşmesine neden olabilir. Benzer boyutlu dosyaları gruplandırmanız mümkün değilse PerFileThreadCount değerini en büyük dosya boyutuna göre ayarlamanız gerekir.

    PerFileThreadCount = 10 threads for the first 2.5 GB + 1 thread for each additional 256 MB increase in file size

    Örnek:

    1 GB ile 10 GB arasında değişen 100 dosyanız olduğunu varsayarsak, denklem için en büyük dosya boyutu olarak 10 GB kullanırız ve bu da aşağıdaki gibi olacaktır.

    PerFileThreadCount = 10 + ((10 GB - 2.5 GB) / 256 MB) = 40 threads

  • 3. Adım: ConcurrentFilecount hesaplama - Aşağıdaki denkleme göre ConcurrentFileCount değerini hesaplamak için toplam iş parçacığı sayısını ve PerFileThreadCount değerini kullanın:

    Total thread count = PerFileThreadCount * ConcurrentFileCount

    Örnek:

    Kullandığımız örnek değerler temel alınmıştır

    96 = 40 * ConcurrentFileCount

    Sonuç olarak ConcurrentFileCount değeri 2,4 ve bunu 2’ye yuvarlayabiliriz.

Daha fazla ayar

Üzerinde çalışılan dosyaların boyutu çeşitlilik gösterdiğinden daha fazla ayar yapmanız gerekebilir. Dosyaların tümü veya çoğu daha büyükse ve 10 GB aralığına yakınsa önceki hesaplama düzgün çalışır. Bunun yerine çoğu dosya küçük olacak şekilde birçok farklı dosya boyutu varsa PerFileThreadCount değerini azaltabilirsiniz. PerFileThreadCount değerini azaltarak ConcurrentFileCount değerini artırabiliriz. Bu nedenle, dosyalarımızın çoğunun 5 GB aralığında daha küçük olduğunu varsayarsak, hesaplamamızı yineleyebiliriz:

PerFileThreadCount = 10 + ((5 GB - 2.5 GB) / 256 MB) = 20

Bu nedenle ConcurrentFileCount değeri 96/20 olur ve 4,8 olur ve 4'e yuvarlanır.

Dosya boyutlarınızın dağılımına göre PerFileThreadCount değerini artırıp azaltarak bu ayarları değiştirmeye devam edebilirsiniz.

Sınırlama

  • Dosya sayısı ConcurrentFileCount değerinden az: Karşıya yüklemekte olduğunuz dosyaların sayısı hesapladığınız ConcurrentFileCount değerinden azsa ConcurrentFileCount değerini dosya sayısına eşit olacak şekilde azaltmanız gerekir. PerFileThreadCount değerini artırmak için kalan iş parçacıklarından dilediğinizi kullanabilirsiniz.

  • Çok fazla iş parçacığı: Kümenizin boyutunu artırmadan iş parçacığı sayısını çok fazla artırırsanız düşük performans riskiyle karşılaşabilirsiniz. CPU’da bağlam değişimi sırasında çekişme sorunları olabilir.

  • Yetersiz eşzamanlılık: Eşzamanlılık yeterli değilse kümeniz çok küçük olabilir. Kümenizdeki düğüm sayısını artırarak daha fazla eşzamanlılık sağlayabilirsiniz.

  • Azaltma hataları: Eşzamanlılığınız çok yüksekse azaltma hataları görebilirsiniz. Azaltma hataları görüyorsanız eşzamanlılığı azaltmanız veya bize ulaşmanız gerekir.

Sonraki adımlar