Az AzCopy teljesítményének optimalizálása az Azure Storage használatával

Az AzCopy egy parancssori segédprogram, amellyel blobokat és fájlokat másolhat a tárfiókok között. Ez a cikk segít a teljesítmény optimalizálásában.

Feljegyzés

Ha olyan tartalmat keres, amely segít az AzCopy használatának megkezdésében, olvassa el az AzCopy használatának első lépéseit ismertető témakört

Teljesítményértékelést végezhet, majd parancsokkal és környezeti változókkal megkeresheti a teljesítmény és az erőforrás-felhasználás közötti optimális egyensúlyt.

Teljesítményteszt-tesztek futtatása

Teljesítménymutató-tesztet futtathat adott blobtárolókon vagy fájlmegosztásokon az általános teljesítménystatisztikák megtekintéséhez és a teljesítmény szűk keresztmetszeteinek azonosításához. A tesztet a létrehozott tesztadatok feltöltésével vagy letöltésével futtathatja.

A teljesítménymutató-teszt futtatásához használja az alábbi parancsot.

Szintaxis

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

Példa

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'

Tipp.

Ez a példa az elérési utak argumentumait egyetlen idézőjelekkel ('') foglalja össze. A Windows parancshéj (cmd.exe) kivételével minden parancshéjban használjon egyetlen idézőjelet. Ha Windows Command Shellt (cmd.exe) használ, az elérésiút-argumentumokat idézőjelek ("") helyett dupla idézőjelekkel ("") foglalja össze.

Ez a parancs teljesítménymutatót futtat a tesztadatok megadott célhelyre való feltöltésével. A tesztadatok a memóriában jönnek létre, feltöltődnek a célhelyre, majd a teszt befejezése után törlődnek a célhelyről. Az opcionális parancsparaméterek használatával megadhatja, hogy hány fájlt hozzon létre, és milyen méretű legyen.

Ha inkább adatok letöltésével szeretné futtatni ezt a tesztet, állítsa a paramétert a mode következőre download: . Részletes referencia-dokumentációkért tekintse meg az azcopy benchmarkot.

Optimalizálás nagy számú fájlhoz

Nagy mennyiségű fájl átvitele esetén az átviteli sebesség csökkenhet. Minden másolási művelet egy vagy több olyan tranzakcióra fordít le, amelyet végre kell hajtani a tárolási szolgáltatásban. Ha nagy számú fájlt ad át, vegye figyelembe a végrehajtandó tranzakciók számát, és minden lehetséges hatással lehet ezekre a tranzakciókra, ha más tevékenységek is történnek a tárfiókban egyidejűleg.

A teljesítmény maximalizálása érdekében csökkentheti az egyes feladatok méretét az egyetlen feladatban másolt fájlok számának korlátozásával. A letöltési és feltöltési műveletekhez szükség szerint növelje az egyidejűséget, csökkentse a naplótevékenységet, és kapcsolja ki a magas teljesítményköltséggel járó funkciókat.

Az egyes feladatok méretének csökkentése

Az optimális teljesítmény érdekében győződjön meg arról, hogy minden feladat kevesebb mint 10 millió fájlt továbbít. A több mint 50 millió fájlt átadó feladatok rosszul teljesíthetnek, mert az AzCopy-feladatkövetési mechanizmus jelentős többletterheléssel jár. A többletterhelés csökkentése érdekében fontolja meg a nagy feladatok kisebbekre való felosztását.

A feladatok méretének csökkentésének egyik módja a feladat által érintett fájlok számának korlátozása. Ehhez parancsparamétereket használhat. Egy feladat például csak a könyvtárak egy részhalmazát másolhatja úgy, hogy a paramétert include path az azcopy copy parancs részeként használja.

A paraméterrel include-pattern egy adott kiterjesztésű fájlokat másolhat (például: *.pdf). Egy külön feladatban a exclude-pattern paraméterrel másolja az összes olyan fájlt, amely nem rendelkezik *.pdf kiterjesztéssel. Példákért lásd : Adott fájlok feltöltése és adott blobok letöltése.

Miután eldöntötte, hogyan oszthat fel nagyobb feladatokat kisebbekre, érdemes lehet több virtuális gépen (virtuális gépen) futtatni a feladatokat.

Egyidejűség növelése

Ha fájlokat tölt fel vagy tölt le, a AZCOPY_CONCURRENCY_VALUE környezeti változóval növelheti a számítógépen egyidejűleg előforduló kérések számát. Állítsa be ezt a változót a lehető legnagyobb mértékben anélkül, hogy veszélyeztetné a gép teljesítményét. A változóval kapcsolatos további információkért tekintse meg a cikk egyidejű kérések számának növelését ismertető szakaszát.

Ha blobokat másol a tárfiókok között, fontolja meg a AZCOPY_CONCURRENCY_VALUE környezeti változó értékének beállítását egy nagyobb értékre 1000. Ezt a változót magasra állíthatja, mert az AzCopy kiszolgálóról kiszolgálóra api-kat használ, így az adatok közvetlenül a tárolókiszolgálók között lesznek átmásolva, és nem használják a gép feldolgozási teljesítményét.

A létrehozott naplók számának csökkentése

A teljesítmény növeléséhez csökkentse az AzCopy által a művelet végrehajtása során létrehozott naplóbejegyzések számát. Alapértelmezés szerint az AzCopy naplózza a művelethez kapcsolódó összes tevékenységet. Az optimális teljesítmény érdekében fontolja meg a --log-level másolási, szinkronizálási vagy eltávolítási parancs paraméterének beállítását ERROR. Így az AzCopy csak hibákat naplóz. Alapértelmezés szerint az értéknapló szintje a következőre INFOvan állítva: .

A hosszellenőrzés kikapcsolása

Ha fájlokat tölt fel vagy tölt le, fontolja meg a --check-length másolási és szinkronizálási parancsok falsebeállítását. Ez megakadályozza, hogy az AzCopy ellenőrizze egy fájl hosszát az átvitel után. Alapértelmezés szerint az AzCopy ellenőrzi a hosszt, hogy a forrás- és célfájlok egyezzenek az átvitel befejezése után. Az AzCopy minden fájlátvitel után elvégzi ezt az ellenőrzést. Ez az ellenőrzés csökkentheti a teljesítményt, ha a feladatok nagy számú kis fájlt adnak át.

Egyidejű helyi vizsgálat bekapcsolása (Linux)

Egyes Linux-rendszereken a fájlvizsgálatok nem hajtanak végre elég gyorsan az összes párhuzamos hálózati kapcsolat telítettségéhez. Ezekben az esetekben magasabb számra állíthatja be a AZCOPY_CONCURRENT_SCAN számot.

Az egyidejű kérések számának növelése

A környezeti változó beállításával növelheti az AZCOPY_CONCURRENCY_VALUE átviteli sebességet. Ez a változó meghatározza az egyidejű kérelmek lehetséges számát.

Ha a számítógép 5 cpu-nál kevesebbet, akkor ennek a változónak az értéke a következőre 32van állítva: . Egyéb esetben az alapértelmezett érték a CPU-k száma szorozva 16-tal. Ennek a változónak a maximális alapértelmezett értéke, 3000de manuálisan is beállíthatja ezt az értéket magasabbra vagy alacsonyabbra.

Operációs rendszer Parancs
Windows set AZCOPY_CONCURRENCY_VALUE=<value>
Linux export AZCOPY_CONCURRENCY_VALUE=<value>
macOS export AZCOPY_CONCURRENCY_VALUE=<value>

azcopy env A változó aktuális értékének ellenőrzéséhez használja ezt a beállítást. Ha az érték üres, akkor bármelyik AzCopy-naplófájl elejét megtekintve elolvashatja, hogy melyik értéket használja. A kijelölt értékről és a kiválasztás okáról itt számolunk be.

A változó beállítása előtt javasoljuk, hogy futtasson egy teljesítménytesztet. A teljesítményteszt tesztelési folyamata a javasolt egyidejűségi értéket jelenti. Másik lehetőségként, ha a hálózati feltételek és a hasznos adatok eltérőek, állítsa ezt a változót a szóra AUTO egy adott szám helyett. Ez azt eredményezi, hogy az AzCopy mindig ugyanazt az automatikus hangolási folyamatot futtatja, amelyet a teljesítménytesztek során használ.

Az átviteli sebesség adatsebességének korlátozása

A parancsok jelölőjének használatával cap-mbps plafont helyezhet az átviteli sebesség adatsebességére. A következő parancs például folytatja a feladatot, és másodpercenként megabitekre (Mb) korlátozza az 10 átviteli sebességet.

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

Memóriahasználat optimalizálása

Állítsa be a AZCOPY_BUFFER_GB környezeti változót annak a rendszermemóriának a maximális mennyiségére, amelyet az AzCopy a fájlok letöltése és feltöltése során puffereléshez használ. Fejezze ki ezt az értéket gigabájtban (GB).

Operációs rendszer Parancs
Windows set AZCOPY_BUFFER_GB=<value>
Linux export AZCOPY_BUFFER_GB=<value>
macOS export AZCOPY_BUFFER_GB=<value>

Feljegyzés

A feladatkövetés mindig további többletterhelést okoz a memóriahasználatban. Az összeg a feladatban lévő átvitelek számától függően változik. A memóriahasználat legnagyobb összetevője a pufferek. A többletterhelés AZCOPY_BUFFER_GB szabályozásához használhatja a követelményeknek való megfelelést, de nincs elérhető jelző, amely szigorúan korlátozza a teljes memóriahasználatot.

Fájlszinkronizálás optimalizálása

A szinkronizálási parancs azonosítja az összes fájlt a célhelyen, majd összehasonlítja a fájlneveket és a legutóbb módosított időbélyegeket a szinkronizálási művelet megkezdése előtt. Ha nagy számú fájllal rendelkezik, akkor a teljesítmény javítása érdekében kiküszöbölheti ezt az előtér-feldolgozást.

Ehhez használja inkább az azcopy copy parancsot, és állítsa a jelölőt a --overwrite következőre ifSourceNewer: . Az AzCopy minden előzetes vizsgálat és összehasonlítás nélkül összehasonlítja a másolt fájlokat. Ez teljesítménybeli előnyt biztosít azokban az esetekben, amikor nagy számú fájlt kell összehasonlítani.

Az azcopy copy parancs nem törli a fájlokat a célhelyről, ezért ha törölni szeretné a célhelyen lévő fájlokat, ha már nem léteznek a forrásnál, akkor használja az azcopy szinkronizálási parancsot a --delete-destination jelölő értékének vagy promptértékének true beállításával.

Feladatok párhuzamos futtatása több ügyfél használatával

Az AzCopy akkor működik a legjobban, ha csak egy példány fut az ügyfélen. Ha párhuzamosan szeretné átvinni a fájlokat, használjon több ügyfelet, és mindegyiken csak egy AzCopy-példányt futtasson.

Lásd még