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 INFO
van á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 false
beá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 32
van á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, 3000
de 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.