Megosztás a következőn keresztül:


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 optimalizálni a teljesítményt.

Feljegyzés

Az AzCopy használatának első lépéseit ismertető tartalomért tekintse meg az AzCopy használatának első lépéseit.

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.

Benchmark 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 parancssori környezet (cmd.exe) kivételével minden parancssori környezetben használjon egyetlen idézőjeleket. 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 tranzakcióra fordít le, amelyet a tárolási szolgáltatásnak végre kell hajtania. Nagy számú fájl átvitelekor vegye figyelembe a végrehajtandó tranzakciók számát, és azt, hogy a tranzakciók milyen potenciális hatással lehetnek, 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 kiterjesztéssel *.pdf . Példákért lásd : Adott fájlok feltöltése és adott blobok letöltése.

Miután eldöntötte, hogyan osztja fel a nagyobb feladatokat kisebbekre, érdemes megfontolni a feladatok futtatását több virtuális gépen.

Az egyidejű működés 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 a beállítás 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 ötnél kevesebb CPU-val rendelkezik, 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, 300de manuálisan is beállíthatja ezt az értéket magasabbra vagy alacsonyabbra.

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 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 a változót a(z) AUTO szóra egy adott szám helyett. Ez a beállítás azt eredményezi, hogy az AzCopy mindig ugyanazt az automatikus finomhangolási folyamatot futtatja, amelyet a teljesítménytesztek során használ.

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

Használja a cap-mbps jelölőt a parancsokban, hogy plafont állítson az átviteli adatsebességre. A következő parancs például folytatja a feladatot, és másodpercenként megabitekre (Mb) korlátozza az 10 átviteli sebességet. Ez a funkció csak fájlok feltöltéséhez vagy letöltéséhez támogatott, nem pedig a fiókok közötti másoláshoz.

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).

export AZCOPY_BUFFER_GB=<value>

Feljegyzés

A feladatkövetés mindig 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últerhelés AZCOPY_BUFFER_GB segítségével történő szabályozásához nagyjából megfelelhet az igényeinek, de nincs olyan jelző, amely szigorúan korlátozná 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, a teljesítmény javítása érdekében kiküszöbölheti ezt az előtér-feldolgozást.

A cél eléréséhez használja inkább az azcopy copy parancsot, és állítsa a --overwrite jelzőt ifSourceNewer állásba. Az AzCopy minden előzetes vizsgálat és összehasonlítás nélkül összehasonlítja a fájlokat a másolásuk során. Ez a megközelítés 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. Ha törölni szeretné a célhelyen lévő fájlokat, amikor már nem léteznek a forrásnál, használja az azcopy sync parancsot, és állítsa be a --delete-destination jelölőt true vagy prompt értékre.

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