Teljesítményhangolási útmutató a PowerShell Azure Data Lake Storage Gen1-zel való használatához

Ez a cikk azokat a tulajdonságokat ismerteti, amelyeket finomhangolhat, hogy jobb teljesítményt nyújtson, miközben a PowerShellt használja Data Lake Storage Gen1.

Megjegyzés

Javasoljuk, hogy az Azure-ral való interakcióhoz az Azure Az PowerShell-modult használja. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

Tulajdonság Alapértelmezett Description
PerFileThreadCount 10 Ez a paraméter lehetővé teszi a párhuzamos szálak számának megadását az egyes fájlok fel- vagy letöltéséhez. Ez a szám a fájlonként lefoglalható maximális szálakat jelöli, de a forgatókönyvtől függően kevesebb szálat kaphat (például ha 1 KB-os fájlt tölt fel, akkor is kap egy szálat, ha 20 szálat kér).
ConcurrentFileCount 10 Ez a paraméter kifejezetten a mappák fel- és letöltéséhez kapcsolódik. Ez a paraméter határozza meg az egyidejűleg fel- vagy letölthető fájlok számát. Ez a szám az egyidejűleg feltölthető vagy letöltött fájlok maximális számát jelöli, de a forgatókönyvtől függően kevesebb egyidejűséget kaphat (például ha két fájlt tölt fel, akkor is két egyidejű fájlfeltöltést kap, ha 15-öt kér).

Példa

Ez a parancs fájlokat tölt le Data Lake Storage Gen1 a felhasználó helyi meghajtójára fájlonként 20 szál és 100 egyidejű fájl használatával.

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

Tulajdonságértékek meghatározása

A következő kérdés az, hogyan állapíthatja meg, hogy milyen értéket kell megadni a teljesítményhez kapcsolódó tulajdonságokhoz. Az alábbiakban olvashat némi útmutatást ezzel kapcsolatban.

  • 1. lépés: A teljes szálszám meghatározása – Első lépésként számítsa ki a használni kívánt szálak teljes számát. Általános útmutatóként minden fizikai maghoz hat szálat kell használnia.

    Total thread count = total physical cores * 6

    Példa

    Tételezzük fel, hogy egy 16 maggal rendelkező D14 VM-en futtatja a PowerShell-parancsokat.

    Total thread count = 16 cores * 6 = 96 threads

  • 2. lépés: A PerFileThreadCount kiszámítása – A PerFileThreadCount értékét a fájlok mérete alapján számítjuk ki. A 2,5 GB-nál kisebb fájlok esetében nem kell módosítani ezt a paramétert, mert a 10 alapértelmezett értéke elegendő. A 2,5 GB-nál nagyobb fájlok esetében 10 szálat kell használnia az első 2,5 GB-os alapként, és minden további 256 MB-os fájlméret-növekedéshez 1 szálat kell hozzáadnia. Ha olyan mappát másol, amelyben nagyon eltérő méretű fájlok találhatók, érdemes hasonló fájlméret alapján csoportosítani a fájlokat. Az eltérő fájlméretek az optimálisnál kisebb teljesítménnyel járhatnak. Ha nem lehetséges a hasonló fájlméret alapján történő csoportosítás, akkor a PerFileThreadCount értékét a legnagyobb fájlméret alapján kell beállítani.

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

    Példa

    Feltételezve, hogy 100 fájlja van 1 GB-tól 10 GB-ig, a 10 GB-ot használjuk az egyenlet legnagyobb fájlméreteként, amely az alábbi módon olvasható.

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

  • 3. lépés: A ConcurrentFilecount kiszámítása – A concurrentFileCount kiszámításához használja a teljes szálszámot és a PerFileThreadCount értéket a ConcurrentFileCount kiszámításához az alábbi egyenlet alapján:

    Total thread count = PerFileThreadCount * ConcurrentFileCount

    Példa

    Az eddig használt példaértékek alapján

    96 = 40 * ConcurrentFileCount

    Tehát a ConcurrentFileCount értéke 2,4, amelyet kerekíthetünk 2-re.

További hangolás

Elképzelhető, hogy további hangolásra lesz szüksége, mert különböző fájlméretekkel kell dolgoznia. Az előző számítás jól működik, ha az összes fájl vagy a legtöbb fájl nagyobb és közelebb van a 10 GB-os tartományhoz. Ha ehelyett sok különböző, nagyon eltérő méretű fájllal rendelkezik, akkor csökkentheti a PerFileThreadCount értékét. A PerFileThreadCount értékének csökkentésével, növelhetjük a ConcurrentFileCount értékét. Ha tehát feltételezzük, hogy a fájlok többsége kisebb az 5 GB-os tartományban, újra el tudjuk végezni a számítást:

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

Így a ConcurrentFileCount 96/20 lesz, amely 4,8, 4-re kerekített.

A beállítások hangolását a PerFileThreadCount értékének növelésével vagy csökkentésével folytathatja a fájlméretek eloszlásától függően.

Korlátozás

  • A fájlok száma kisebb, mint a ConcurrentFileCount értéke: Ha a feltölteni kívánt fájlok száma kisebb a ConcurrentFileCount kiszámított értékének, akkor csökkentse a ConcurrentFileCount értékét úgy, hogy az egyenlő legyen a fájlok számával. A fennmaradó szálakat a PerFileThreadCount értékének a növelésére használhatja.

  • Túl sok szál: Ha túlságosan megnöveli a szálszámot a fürt méretének növelése nélkül, az rosszabb teljesítménnyel járhat. Versengési problémák adódhatnak, ha kontextusváltás történik a CPU-n.

  • Elégtelen egyidejűség: Ha az egyidejűség nem elégséges, lehet, hogy túl kicsi a fürt. Növelheti a fürt csomópontjainak számát, ami több egyidejűséget biztosít.

  • Szabályozási hibák: Elképzelhető, hogy szabályozási hibákat tapasztal, ha az egyidejűség túl magas. Ha szabályozás hibák merülnek fel, csökkentse az egyidejűséget vagy lépjen kapcsolatba velünk.

Következő lépések