Az Azure Batch ajánlott eljárásai

Ez a cikk az Azure Batch szolgáltatás hatékony használatához ajánlott eljárásokat és hasznos tippeket ismerteti. Ezek a tippek segíthetnek a teljesítmény növelésében és a Batch-megoldások tervezési buktatóinak elkerülésében.

Jótanács

Az Azure Batch biztonságára vonatkozó útmutatásért tekintse meg a Batch biztonsági és megfelelőségi ajánlott eljárásait.

Medencék

A készletek a Batch szolgáltatásban a feladatok végrehajtásához szükséges számítási erőforrások. A következő szakaszok javaslatokat nyújtanak a Batch-készletek használatához.

Medence konfiguráció és elnevezés

  • Készletfoglalási mód: Batch-fiók létrehozásakor két készletfoglalási mód közül választhat: Batch-szolgáltatás vagy felhasználói előfizetés. A legtöbb esetben az alapértelmezett Batch szolgáltatásmódot kell használnia, amelyben a készletek a Batch által felügyelt előfizetésekben, a háttérben kerülnek kiosztásra. A szintén választható „Felhasználói előfizetés” mód esetében a Batch virtuális gépei és egyéb erőforrásai közvetlenül az előfizetésben jönnek létre egy készlet létrehozásakor. A felhasználói előfizetési fiókok elsősorban a forgatókönyvek kis, de fontos részhalmazának engedélyezésére szolgálnak. További információkért lásd a felhasználói előfizetési mód konfigurációját.

  • classic vagy simplified csomópontkommunikációs mód: A készletek két csomópontkommunikációs mód egyikében konfigurálhatók, klasszikus vagy egyszerűsített módon. A klasszikus csomópontkommunikációs modellben a Batch szolgáltatás kommunikációt kezdeményez a számítási csomópontokkal, a számítási csomópontok pedig az Azure Storage-ral való kommunikációt is igénylik. Az egyszerűsített csomópontkommunikációs modellben a számítási csomópontok kezdeményeznek kommunikációt a Batch szolgáltatással. A szükséges bejövő/kimenő kapcsolatok korlátozott hatóköre miatt, és nem igényel Azure Storage kimenő hozzáférést az alapművelethez, a javaslat az egyszerűsített csomópontkommunikációs modell használata. A Batch szolgáltatás jövőbeli fejlesztéseihez az egyszerűsített csomópontkommunikációs modellre is szükség lesz. A klasszikus csomópontkommunikációs modell 2026. március 31-én megszűnik.

  • Feladat- és tevékenységfuttatási idő szempontjai: Ha a feladatok elsősorban rövid ideig futó tevékenységekből állnak, és a várt teljes tevékenységszám kicsi, így a feladat teljes várható futási ideje nem hosszú, ne foglaljon le új készletet az egyes feladatokhoz. A csomópontok foglalási ideje csökkenti a feladat futási idejét.

  • Több számítási csomópont: Az egyes csomópontok nem garantáltan mindig elérhetők. A nem gyakori hardverhibák, az operációs rendszer frissítései és számos egyéb probléma miatt az egyes csomópontok offline állapotba kerülhetnek. Ha a Batch számítási feladatai determinisztikus, garantált előrehaladást igényelnek, több csomóponttal rendelkező készleteket kell lefoglalnia.

  • Közelgő támogatási lejárati dátummal (EOL) rendelkező képek: Erősen ajánlott elkerülni azokat a képeket, amelyeknek hamarosan lejár a Batch támogatása (EOL). Ezek a dátumok az API-val, a PowerShell-lel vagy ListSupportedImages Azure CLI-vel deríthetők fel. Az Ön feladata, hogy rendszeresen frissítse a készletekhez tartozó EOL-dátumok nézetét, és migrálja a számítási feladatokat az EOL-dátum előtt. Ha egyéni rendszerképet használ egy megadott csomópontügynökkel, győződjön meg arról, hogy a Batch támogatja annak a rendszerképnek az élettartamát, amelyhez az egyéni rendszerkép származik vagy igazodik. A megadott batchSupportEndOfLife dátum nélküli képek azt jelzik, hogy a Batch szolgáltatás még nem határozott meg ilyen dátumot. A dátum hiánya nem jelzi, hogy a megfelelő rendszerkép határozatlan ideig támogatott lesz. Az EOL-dátum bármikor hozzáadható vagy frissíthető a jövőben.

  • Virtuálisgép-termékváltozatok közelgő életciklus-befejezési (EOL) dátumokkal: A virtuálisgép-rendszerképek esetében a virtuálisgép-termékváltozatok vagy -családok is elérhetik a Batch-támogatás élettartamának végét (EOL). Ezek a dátumok az API-val, a PowerShell-lel vagy ListSupportedVirtualMachineSkus Azure CLI-vel deríthetők fel. Tervezze meg a számítási feladat áttelepítését egy nem EOL virtuálisgép-termékváltozatba egy új készlet létrehozásával, amely megfelelő támogatott virtuálisgép-termékváltozattal rendelkezik. A virtuálisgép-termékváltozat társított batchSupportEndOfLife dátumának hiánya nem jelenti azt, hogy az adott virtuálisgép-termékváltozat határozatlan ideig támogatott lesz. Az EOL-dátum bármikor hozzáadható vagy frissíthető a jövőben.

  • Egyedi erőforrásnevek: A Batch-erőforrások (feladatok, készletek stb.) gyakran jönnek és mennek át az idő múlásával. Létrehozhat például egy készletet hétfőn, törölheti kedden, majd csütörtökön létrehozhat egy másik hasonló készletet. Minden új erőforrásnak egyedi nevet kell kapnia, amit még nem használtál. Egyediséget egy GUID használatával hozhat létre (akár a teljes erőforrásnév, akár annak részeként), akár az erőforrás létrehozásának dátumát és időpontját beágyazva az erőforrás nevében. A Batch támogatja a DisplayName nevet, amely akkor is olvashatóbb nevet adhat az erőforrásnak, ha a tényleges erőforrás-azonosító nem emberbarát. Az egyedi nevek használatával könnyebben megkülönböztetheti, hogy melyik erőforrás tett valamit a naplókban és a metrikákban. Emellett eltávolítja a kétértelműséget, ha valaha is támogatási esetet kell benyújtania egy erőforráshoz.

  • Folyamatosság az erőforrás medencék karbantartása és meghibásodása esetén: A legjobb, ha a feladatok dinamikusan használják az erőforrás medencéket. Ha a feladatok mindenhez ugyanazt az erőforráshalmazt használják, akkor előfordulhat, hogy a feladatok nem futnak, ha valami baj van az erőforráshalmazzal. Ez az elv különösen fontos az időérzékeny számítási feladatok esetében. Például dinamikusan jelöljön ki vagy hozzon létre egy készletet az egyes feladatok ütemezésekor, vagy felülbírálhatja a készlet nevét, hogy megkerülhesse a nem megfelelő állapotú készletet.

  • Üzletmenet-folytonosság a készlet karbantartása és meghibásodása során: Számos oka lehet annak, hogy a készlet nem nő a kívánt méretre, például belső hibák vagy kapacitáskorlátozások. Győződjön meg arról, hogy szükség esetén át tudja irányítani a feladatokat egy másik készlethez (akár eltérő virtuálisgép-mérettel is) a BatchClient.UpdateJob használatával. Ne számítson egy statikus készletazonosítóra azzal a várakozással, hogy az soha nem lesz törölve, vagy soha nem változik.

Medencebiztonság

Elkülönítési határ

Elkülönítés céljából, ha a forgatókönyv a feladatok vagy tevékenységek elkülönítését igényli egymástól, ezt úgy teheti meg, hogy külön készletekben vannak. A készlet a Batch biztonsági elkülönítési határa, és alapértelmezés szerint két készlet nem látható vagy nem tud kommunikálni egymással. Ne használjon különálló Batch-fiókokat a biztonsági elkülönítés eszközeként, kivéve, ha a Nagyobb környezet, amelyben a Batch-fiók működik, elkülönítést igényel.

Ha szükséges, megfelelő hozzáférés-vezérlést kell alkalmazni a Batch-fiókon és API-kon, hogy megakadályozza a Batch-fiókban lévő összes készlethez való hozzáférést. Ajánlott letiltani a megosztott kulcsok hozzáférését, és csak az Entra-alapú hitelesítést engedélyezni a szerepköralapú hozzáférés-vezérléshez.

Batch Node Agent frissítései

A Batch csomópont ügynökei nem frissülnek automatikusan azoknál a készleteknél, amelyek nem nulla számítási csomópontokkal rendelkeznek. Ahhoz, hogy a Batch-készletek megkapják a Batch-csomópontügynök legújabb biztonsági javításait és frissítéseit, át kell méreteznie a készletet nulla számítási csomópontra, vagy újra létre kell hoznia a készletet. Javasoljuk, hogy figyelje a Batch-csomópont-ügynök kiadási megjegyzéseit, hogy megértse az új verziókkal kapcsolatos módosításokat. A frissítések kiadásukkor történő rendszeres ellenőrzése lehetővé teszi, hogy a frissítéseket a legújabb ügynökverzióra tervezze.

A készlet újbóli létrehozása vagy átméretezése előtt hibakeresés céljából le kell töltenie a csomópontügynök naplóit, ha problémákat tapasztal a Batch-készlettel vagy a számítási csomópontokkal kapcsolatban. Ezt a folyamatot a Csomópontok szakaszban tárgyaljuk tovább.

Megjegyzés:

Az Azure Batch biztonságára vonatkozó általános útmutatásért tekintse meg a Batch biztonsági és megfelelőségi ajánlott eljárásait.

Operációsrendszer-frissítések

Javasoljuk, hogy a Batch-készlethez kiválasztott virtuálisgép-rendszerkép naprakész legyen a közzétevő legújabb biztonsági frissítéseivel. Egyes rendszerképek automatikus csomagfrissítéseket hajthatnak végre a rendszerindításkor (vagy röviddel ezt követően), ami zavarhatja bizonyos felhasználó által irányított műveleteket, például a csomagtár frissítéseinek lekérését (például) vagy a csomagok telepítését olyan műveletek során, apt updatemint például a StartTask.

Javasoljuk, hogy engedélyezze az automatikus operációsrendszer-frissítést a Batch-készletekhez, ami lehetővé teszi, hogy a mögöttes Azure-infrastruktúra koordinálja a frissítéseket a készleten belül. Ez a beállítás konfigurálható úgy, hogy ne legyen megszakítva a tevékenység végrehajtásához. Az automatikus operációsrendszer-frissítés nem támogatja a Batch által támogatott összes operációs rendszert. További információt a virtuális gép-méretezési csoportok automatikus operációsrendszer-frissítési támogatási mátrixában talál. Windows operációs rendszerek esetén győződjön meg arról, hogy nem engedélyezi a tulajdonságot virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates , amikor automatikus operációsrendszer-frissítést használ a Batch-készleten.

Az Azure Batch nem ellenőrzi vagy garantálja, hogy a szolgáltatáshoz engedélyezett rendszerképek rendelkeznek-e a legújabb biztonsági frissítésekkel. A képek frissítése a kép közzétevőjének hatáskörébe tartozik, és nem az Azure Batch-hez. Bizonyos, a microsoft-azure-batch alatt közzétett képek esetében nincs garancia arra, hogy ezek a képek naprakészek maradnak az eredeti forrásból származó képükkel.

Készlet élettartama és számlázása

A pool élettartama az allokálási módszertől és a készlet konfigurációjára alkalmazott lehetőségektől függően változhat. A készleteknek tetszőleges élettartamuk lehet, és bármikor változó számú számítási csomóponttal rendelkezhetnek. Az Ön felelőssége, hogy a készlet számítási csomópontjait explicit módon vagy a szolgáltatás által biztosított funkciókkal (automatikus skálázás vagy automatikus skálázás) kezelje.

  • Készlet újbóli létrehozása: Kerülje a készletek napi törlését és újbóli létrehozását. Ehelyett hozzon létre egy új medencét, majd frissítse a meglévő feladatokat úgy, hogy az új medencére irányítsa őket. Miután az összes feladatot áthelyezte az új készletbe, törölje a régi készletet.

  • Tár hatékonysága és számlázása: A Batch önmagában nem jár többletköltséggel. Azonban díjakat kell fizetnie a felhasznált Azure-erőforrásokért, például a számításért, a tárolásért, a hálózatkezelésért és minden más, a Batch-számítási feladathoz szükséges erőforrásért. A készletben lévő összes számítási csomópontért számlázunk, függetlenül attól, hogy milyen állapotban van. További információkért tekintse meg az Azure Batch költségelemzését és költségvetéseit.

  • Rövid élettartamú operációsrendszer-lemezek: A virtuálisgép-konfigurációs készletek rövid élettartamú operációsrendszer-lemezeket használhatnak, amelyek létrehozzák az operációsrendszer-lemezt a virtuálisgép-gyorsítótárban vagy az ideiglenes SSD-ben a felügyelt lemezekhez kapcsolódó többletköltségek elkerülése érdekében.

Készletfoglalási hibák

A készletfoglalási hibák bármikor előfordulhatnak az első foglalás vagy az azt követő átméretezések során. Ezek a hibák oka lehet egy régióban a kapacitás ideiglenes kimerülése, vagy más Azure-szolgáltatások meghibásodása, amelyekre a Batch támaszkodik. Az alapkvóta nem garancia, hanem korlát.

Nem tervezett leállás

Előfordulhat, hogy a Batch-készletek állásidő-eseményeket tapasztalnak az Azure-ban. Ismerje meg, hogy problémák merülhetnek fel, és a munkafolyamatot úgy kell fejlesztenie, hogy rugalmas legyen az újrafuttatásokkal szemben. Ha a csomópontok sikertelenek, a Batch automatikusan megpróbálja helyreállítani ezeket a számítási csomópontokat az Ön nevében. Ez a helyreállítás aktiválhatja a visszaállított csomóponton vagy egy másik, elérhető csomóponton futó feladat átütemezését. A megszakított tevékenységekről további információt az újrapróbálkozási tervezés című témakörben talál.

Egyéni képkészletek

Amikor Azure Batch-készletet hoz létre a virtuálisgép-konfigurációval, meg kell adnia egy virtuálisgép-rendszerképet, amely a készlet minden számítási csomópontjának operációs rendszerét biztosítja. Létrehozhatja a készletet egy támogatott Azure Marketplace-rendszerképpel, vagy létrehozhat egy egyéni rendszerképet az Azure Compute Gallery által biztosított rendszerképpel. Bár felügyelt rendszerképeket is használhat egyéni rendszerképkészletek létrehozásához, javasoljuk, hogy amikor csak lehetséges, hozzon létre egyéni rendszerképeket az Azure Compute Gallery használatával. Az Azure Compute Gallery használatával gyorsabban építhet ki készleteket, skálázhat nagyobb mennyiségű virtuális gépet, és javítja a megbízhatóságot a virtuális gépek kiépítésekor.

Harmadik fél általi képek

Halmazok hozhatók létre az Azure Marketplace-en közzétett külső rendszerképek használatával. Felhasználói előfizetési módú Batch-fiókok esetén a készlet létrehozásakor a "Foglalás meghiúsult a Marketplace-vásárlás jogosultsági ellenőrzése miatt" hibaüzenet jelenhet meg bizonyos külső rendszerképekkel rendelkező készlet létrehozásakor. A hiba megoldásához fogadja el a kép közzétevője által beállított feltételeket. Ezt az Azure PowerShell vagy az Azure CLI használatával teheti meg.

Konténercsoportok

Amikor egy virtuális hálózattal hoz létre Batch-készletet, interakciós mellékhatások léphetnek fel a megadott virtuális hálózat és az alapértelmezett Docker-híd között. A Docker alapértelmezés szerint létrehoz egy hálózati hidat a következő alhálózati 172.17.0.0/16specifikációval: . Győződjön meg arról, hogy a Docker hálózati híd és a virtuális hálózat között nincsenek ütköző IP-tartományok.

A Docker Hub korlátozza a rendszerkép-lekérések számát. Győződjön meg arról, hogy a számítási feladat nem lépi túl a Docker Hub-alapú rendszerképek közzétett sebességkorlátait . Javasoljuk, hogy közvetlenül használja az Azure Container Registryt , vagy használja az Artifact Cache-t az ACR-ben.

Azure-régió függősége

Nem szabad egyetlen Azure-régióra támaszkodnia, ha időérzékeny vagy éles számítási feladatokat használ. Bár ritkán előfordulnak olyan problémák, amelyek egy teljes régiót érinthetnek. Ha például a feldolgozásnak egy adott időpontban kell kezdődnie, fontolja meg a készlet felskálázását az elsődleges régióban jóval a kezdési időpont előtt. Ha a készlet skálázása sikertelen, visszaléphet egy készlet skálázására egy tartalék régióban (vagy régiókban).

A különböző régiókban található több fiókban lévő készletek kész, könnyen hozzáférhető biztonsági mentést biztosítanak, ha valami probléma merül fel egy másik készlettel. További információ: Az alkalmazás tervezése magas rendelkezésre állás érdekében.

Feladatok

A feladatok olyan tárolók, amelyek több száz, több ezer vagy akár több millió feladatot tartalmaznak. Kövesse ezeket az irányelveket a feladatok létrehozásakor.

Kevesebb feladat, több tevékenység

Ha egy feladatot egyetlen feladat futtatására használ, az nem hatékony. Hatékonyabb például egy 1000 feladatot tartalmazó feladat használata ahelyett, hogy 100 feladatot tartalmazó feladatokat hoz létre, amelyek mindegyike 10 feladatot tartalmaz. Ha 1000 feladatot használt, mindegyikhez egyetlen feladat tartozik, amely a legkevésbé hatékony, leglassabb és legdrágább módszer lenne.

Ne tervezzen olyan Batch-megoldást, amely több ezer egyidejűleg aktív feladatot igényel. A tevékenységekhez nincs kvóta, ezért a feladatok minél több feladat alatti végrehajtása hatékonyan használja a feladat- és feladatütemezési kvótákat.

Feladat élettartama

A Batch-feladatok élettartama határozatlan ideig tart, amíg el nem törlik a rendszerből. Az állapota határozza meg, hogy el tud-e fogadni több feladatot az ütemezéshez, vagy sem.

A munka nem lép automatikusan befejezett állapotba, hacsak nem fejezik be azt explicit módon. Ez a művelet automatikusan aktiválható a BatchAllTasksCompleteMode tulajdonságon vagy a maxWallClockTime-on keresztül.

Van egy alapértelmezett aktív feladat- és feladatütemezési kvóta. A befejezett állapotú feladatok és feladatütemezések nem számítanak bele ebbe a kvótába.

Törölje a munkákat, ha már nincs rájuk szükség, még akkor is, ha befejezett állapotban vannak. Bár a befejezett feladatok nem számítanak bele az aktív feladatkvótába, érdemes rendszeresen törölni a befejezett feladatokat. A feladatok listázása például hatékonyabb lesz, ha a feladatok teljes száma kisebb (még akkor is, ha megfelelő szűrőket alkalmaz a kérelemre).

Tevékenységek

A tevékenységek egy feladatból álló önálló munkaegységek. A feladatokat a felhasználó küldi el, és a Batch ütemezi a számítási csomópontokra. A következő szakaszok javaslatokat nyújtanak a feladatok tervezésére a problémák kezelése és hatékony végrehajtása érdekében.

Tevékenységadatok mentése

A számítási csomópontok természetükből adódóan rövid élettartamúak. Az olyan Batch-funkciók, mint az autopool és az autoscale, megkönnyítik a csomópontok eltűnését. Ha a csomópontok elhagyják a készletet (átméretezés vagy készlet törlése miatt), a csomópontokon lévő összes fájl is törlődik. Ennek a viselkedésnek a következményeként a feladat kimenetét le kell venni arról a csomópontról, amin fut, majd el kell helyezni egy tartós tárolóban, mielőtt befejeződik. Hasonlóképpen, ha egy feladat meghiúsul, a hiba diagnosztizálásához szükséges naplókat át kell helyeznie egy tartós tárolóba.

A Batch integráltan támogatja az Azure Storage-t az adatok OutputFileson és különböző megosztott fájlrendszereken keresztüli feltöltéséhez, vagy saját maga is elvégezheti a feltöltést a feladataiban.

Tevékenység élettartamának kezelése

Törölje a tevékenységeket, ha már nincs rájuk szükség, vagy állítson be egy retentionTime tevékenységkorlátot. Ha be van állítva a retentionTime beállítás, a Batch automatikusan törli a tevékenység által használt lemezterületet a retentionTime lejáratkor.

A tevékenységek törlése két dolgot hajt végre:

  • Gondoskodik arról, hogy a feladatban ne legyen több feladat. Ez a művelet segít elkerülni az önt érdeklő feladat megkeresésének nehézségét, mivel a befejezett tevékenységeken keresztül kell szűrnie.
  • Törli a csomópont megfelelő feladatadatait (feltéve, hogy retentionTime még nem történt találat). Ez a művelet segít biztosítani, hogy a csomópontok ne töltsenek ki feladatadatokat, és elfogyjon a lemezterület.

Megjegyzés:

A Batchnek most elküldött feladatok esetén a DeleteTask API-hívás érvénybe lépése akár 10 percet is igénybe vehet. A hatálybalépés előtt előfordulhat, hogy más tevékenységek nem lesznek ütemezve. Ennek az az oka, hogy a Batch Scheduler továbbra is megpróbálja ütemezni az imént törölt feladatokat. Ha nem sokkal az elküldése után törölni szeretne egy tevékenységet, fejezze be helyette a tevékenységet (mivel a tevékenység leállítási kérése azonnal érvénybe lép). Ezután 10 perccel később törölje a feladatot.

Nagyszámú feladat elküldése a gyűjteményhez

A feladatok egyénileg vagy gyűjteményekben is beküldhetők. Egyszerre legfeljebb 100 gyűjteménybe küldheti be a feladatokat , ha a feladatok tömeges beküldésével csökkenti a többletterhelést és a beküldési időt.

Állítsa be a csomópontonkénti maximális feladatok számát megfelelően.

A Batch támogatja a csomópontokon lévő feladatok túlfoglalását (több feladatot futtat, mint amennyi egy csomópont magjainak számával lehetséges). Neked kell gondoskodnod arról, hogy a feladatok megfelelő méretűek legyenek a készlet csomópontjaihoz. Például ha megkísérel nyolc olyan feladatot ütemezni egy csomóponton, amelyek mindegyike 25%-os processzorhasználatot igényel (egy készletben taskSlotsPerNode = 8), az élmény romolhat.

Újrapróbálkozásokra és újravégzésekre tervezés

A Batch automatikusan újrapróbálkozza a feladatokat. Az újrapróbálkozásnak két típusa van: felhasználó által ellenőrzött és belső. A felhasználó által vezérelt újrapróbálkozások a tevékenység maxTaskRetryCount értékével vannak megadva. Ha a feladatban megadott program egy nem nulla kilépési kóddal lép ki, a feladatot újrapróbálja a maxTaskRetryCount értékéig.

Bár ritka, egy feladat újrakezdődhet a számítási csomóponton fellépő hibák miatt, például a belső állapot frissítésének képtelensége vagy a feladat futtatása közbeni csomóponti hiba miatt. A tevékenység újrapróbálkozása ugyanazon a számítási csomóponton történik, ha lehetséges, egy belső korlátig, mielőtt feladná a feladatot, és elhalasztja a Batch által átütemezendő tevékenységet, esetleg egy másik számítási csomóponton.

A feladatok dedikált vagy kihasználatlan csomópontokon való végrehajtásakor nincsenek tervezési különbségek. Függetlenül attól, hogy egy feladat megszakítva van-e Spot csomóponton való futtatás közben, vagy egy dedikált csomópont meghibásodása miatt megszakad, mindkét esetet enyhíti, ha úgy tervezi meg a feladatot, hogy az képes legyen ellenállni a hibáknak.

Tartós feladatok létrehozása

A feladatokat úgy kell megtervezni, hogy ellenálljanak a hibáknak, és alkalmazkodjanak az újrapróbálkozáshoz. Ez az elv különösen fontos a hosszú ideig futó feladatok esetében. Győződjön meg arról, hogy a tevékenységek ugyanazt az egyetlen eredményt eredményezik, még akkor is, ha többször futtatják őket. Ennek az eredménynek az egyik módja, ha a feladatokat "célkövetővé" teszi. Egy másik módszer, ha meggyőződik arról, hogy a feladatok idempotensek (a feladatok eredménye ugyanaz lesz, függetlenül attól, hogy hányszor futnak).

Gyakori példa egy feladat, amely fájlokat másol egy számítási csomópontra. Az egyszerű megközelítés egy olyan feladat, amely minden futtatáskor átmásolja az összes megadott fájlt, ami nem hatékony, és nem a hibák ellen készült. Ehelyett hozzon létre egy feladatot, hogy a fájlok a számítási csomóponton legyenek; olyan feladat, amely nem tárja át a már meglévő fájlokat. Ily módon a feladat ott veszi fel, ahol abbahagyta, ha megszakadt.

A rövid végrehajtási idő elkerülése

A csak egy-két másodpercig futó feladatok nem ideálisak. Próbáljon meg jelentős mennyiségű munkát végezni egy adott tevékenységben (legalább 10 másodperc, akár órák vagy napok). Ha minden feladat egy percre (vagy többre) hajtódik végre, akkor az ütemezési overhead a teljes számítási időhöz képest kicsi.

Használj készlet hatókört rövid feladatokhoz Windows-csomópontokon

Ha egy tevékenységet a Batch-csomópontokon ütemez, kiválaszthatja, hogy a tevékenység hatókörével vagy készlet hatókörével futtatja-e. Ha a tevékenység csak rövid ideig fog futni, a tevékenység hatóköre nem lehet hatékony az adott tevékenységhez tartozó autouser-fiók létrehozásához szükséges erőforrások miatt. A nagyobb hatékonyság érdekében fontolja meg ezeknek a feladatoknak a csoportos hatókörbe állítását. További információ: Feladat futtatása automatikusan, készlethatókörrel.

Csomópontok

A számítási csomópont egy Azure-beli virtuális gép vagy felhőszolgáltatás virtuális gépe, amely az alkalmazás számítási feladatainak egy részének feldolgozására szolgál. A csomópontok használatakor kövesse ezeket az irányelveket.

Tevékenységek indítása: élettartam és idempotencia

A többi tevékenységhez hasonlóan a csomópont kezdő tevékenységének is idempotensnek kell lennie. Az indítási feladatok újrafutnak a számítási csomópont újraindításakor vagy a Batch-ügynök újraindításakor. Az idempotens tevékenységek egyszerűen olyan tevékenységek, amelyek többszöri futtatáskor konzisztens eredményt adnak.

Az indítási feladatok nem futhatnak hosszú ideig, vagy nem köthetők a számítási csomópont élettartamához. Ha olyan programokat kell elindítania, amelyek szolgáltatások vagy szolgáltatásszerű jellegűek, hozzon létre egy indítási feladatot, amely lehetővé teszi a programok elindítását és kezelését az operációs rendszer olyan létesítményei számára, mint a systemd Linux vagy a Windows Services. A kezdési feladatot továbbra is idempotensként kell összeállítani, hogy a rendszer megfelelően kezelje a kezdési feladat későbbi végrehajtását, ha ezek a programok korábban szolgáltatásokként lettek telepítve.

Jótanács

Amikor a Batch újrafuttatja a kezdési feladatot, megkísérli törölni a kezdő tevékenység könyvtárát, és újból létrehozza azt. Ha a Batch nem tudja újból létrehozni a kezdő tevékenység könyvtárát, akkor a számítási csomópont nem indítja el a kezdési feladatot.

Ezeknek a szolgáltatásoknak nem szabad fájlzárolást végezniük a csomópontOn a Batch által felügyelt címtárakban lévő fájlokon, mert ellenkező esetben a Batch nem tudja törölni ezeket a könyvtárakat a fájlzárolások miatt. Például ahelyett, hogy közvetlenül a kezdő feladat munkakönyvtárából konfigurálja a szolgáltatás elindítását, másolja a fájlokat idempotens módon máshová. Ezután telepítse a szolgáltatást erről a helyről az operációs rendszer eszközeivel.

Izolált csomópontok

Fontolja meg izolált virtuálisgép-méretek használatát a megfelelőségi vagy szabályozási követelményeknek megfelelő számítási feladatokhoz. A virtuálisgép-konfigurációs módban támogatott izolált méretek a következők Standard_E80ids_v4: , Standard_M128ms, Standard_F72s_v2, Standard_G5, Standard_GS5és Standard_E64i_v3. Az izolált virtuálisgép-méretekről további információt az Azure-beli virtuális gépek elkülönítését ismertető cikkben talál.

Ne hozzon létre címtár-csomópontokat a Windowsban

A könyvtármetszeteket, más néven a könyvtári merev hivatkozásokat nehéz kezelni a feladat- és munka-tisztítás során. Használjon szimlinkeket (helyreállítható hivatkozásokat) a kemény csatolások helyett.

Ideiglenes lemezek és AZ_BATCH_NODE_ROOT_DIR

A Batch a Batch-kompatibilis virtuálisgép-méretekhez tartozó virtuálisgép-ideiglenes lemezekre támaszkodik a feladatvégrehajtással kapcsolatos metaadatok és az ezen az ideiglenes lemezen végrehajtott tevékenységek minden összetevőjének tárolására. Ilyen ideiglenes lemezcsatlakoztatási pontok vagy könyvtárak például a következők: /mnt/batch, /mnt/resource/batchés D:\batch\tasks. A csatlakoztatási pontok és könyvtárak vagy a szülőkönyvtárak cseréje, újracsatlakoztatása, összekapcsolása, szimlinkelése vagy más módon történő átirányítása nem támogatott, és instabilitáshoz vezethet. Ha több lemezterületre van szüksége, fontolja meg olyan virtuálisgép-méret vagy -család használatát, amely ideiglenes lemezterülettel rendelkezik, amely megfelel a követelményeknek, vagy adatlemezeket csatol. További információkért tekintse meg az adatlemezek számítási csomópontokhoz való csatolásáról és előkészítéséről szóló következő szakaszt.

Adatlemezek csatolása és előkészítése

Minden egyes számítási csomópont pontosan ugyanazzal az adatlemez-specifikációval rendelkezik, ha a Batch-készletpéldány részeként van megadva. A Batch-készletekhez csak új adatlemezek csatolhatók. A számítási csomópontokhoz csatolt adatlemezek nincsenek automatikusan particionálva, formázva vagy csatlakoztatva. Az Ön felelőssége, hogy ezeket a műveleteket a kezdési feladat részeként végezze el. Ezeket az indítási feladatokat idempotensnek kell lenniük. A számítási csomópontokon az indítási feladatok újrafuttatása lehetséges. Ha az indító feladat nem idempotens, adatvesztés fordulhat elő az adatlemezeken.

Jótanács

Adatlemez csatlakoztatásakor Linux rendszerben, ha a lemez csatlakoztatási pontját az Azure ideiglenes csatlakozási pontok, mint például /mnt vagy /mnt/resource, alá ágyazzuk be, ügyelni kell arra, hogy ne okozzon függőségi versenyeket. Ha például ezeket a csatolásokat az operációs rendszer automatikusan végrehajtja, versenyhelyzet alakulhat ki a felcsatolt ideiglenes lemez és az adatlemezek szülő alá kerülése között. Gondoskodni kell arról, hogy a megfelelő függőségeket rendelkezésre álló eszközök, például a systemd, kényszerítsék ki, vagy az idempotens adatlemez-előkészítési szkript keretében halasszák el az adatlemez csatlakoztatását az indítási feladatra.

Adatlemezek előkészítése Linux Batch-készletekben

A Linuxban található Azure-adatlemezek blokkeszközökként jelennek meg, és egy tipikus sd[X] azonosítót kapnak. Nem szabad statikus sd[X] hozzárendelésekre támaszkodnia, mivel ezek a címkék dinamikusan vannak hozzárendelve a rendszerindításkor, és nem garantált, hogy konzisztensek lesznek az első és az azt követő rendszerindítás között. A csatolt lemezeket az itt bemutatott /dev/disk/azure/scsi1/leképezéseken keresztül kell azonosítania. Ha például lun 0 értéket adott meg az adatlemezhez az AddPool API-ban, akkor ez a lemez a következőképpen fog megjelenni /dev/disk/azure/scsi1/lun0: . Ha például fel szeretné sorolni ezt a könyvtárat, az alábbiakat láthatja:

user@host:~$ ls -l /dev/disk/azure/scsi1/
total 0
lrwxrwxrwx 1 root root 12 Oct 31 15:16 lun0 -> ../../../sdc

Nincs szükség arra, hogy a referenciát visszafordítsuk a leképezéshez az előkészítési szkriptben; ehelyett közvetlenül az eszközre kell hivatkoznia. Ebben a példában ez az eszköz lenne /dev/disk/azure/scsi1/lun0. Ezt az azonosítót közvetlenül a munkafolyamatához szükséges fdisk, mkfs és egyéb eszközöknek megadhatja. Másik lehetőségként használhatja lsblkblkid-t a lemez UUID-jának leképezéséhez.

A Linuxon futó Azure-adatlemezekről, beleértve az adatlemezek és /etc/fstab -beállítások helyének alternatív módszereit is, olvassa el ezt a cikket. Győződjön meg arról, hogy nincsenek függőségek vagy versenyhelyzetek a Tipp feljegyzésben leírtak szerint, mielőtt a módszert éles használatba helyezi.

Adatlemezek előkészítése Windows Batch-készletekben

A Batch Windows számítási csomópontokhoz csatolt Azure-adatlemezek nem particionált és formázatlan állapotban jelennek meg. Az indítási feladat részeként számba kell vennie a partícióval rendelkező RAW lemezeket. Ezek az információk a Get-Disk PowerShell-parancsmaggal kérhetők le. Példaként az alábbiakat tekintheti meg:

PS C:\Windows\system32> Get-Disk

Number Friendly Name Serial Number                    HealthStatus         OperationalStatus      Total Size Partition
                                                                                                             Style
------ ------------- -------------                    ------------         -----------------      ---------- ----------
0      Virtual HD                                     Healthy              Online                      30 GB MBR
1      Virtual HD                                     Healthy              Online                      32 GB MBR
2      Msft Virtu...                                  Healthy              Online                      64 GB RAW

Ahol a 2. lemezszám az ehhez a számítási csomóponthoz csatolt nem inicializált adatlemez. Ezek a lemezek ezután inicializálhatók, particionáltak és formázhatók a munkafolyamathoz szükséges módon.

A Windows azure-adatlemezeiről, beleértve a PowerShell-példaszkripteket is, olvassa el ezt a cikket. Győződjön meg arról, hogy a mintaszkripteket a rendszer az éles használatba való előléptetés előtt ellenőrzi az idempotencia szempontjából.

Batch-ügynök naplóinak gyűjtése

Ha egy csomópont viselkedésével vagy a csomóponton futó feladatokkal kapcsolatos problémát észlel, gyűjtse össze a Batch ügynök naplóit a szóban forgó csomópontok deallokálása előtt. A Batch-ügynök naplói a Batch feltöltési szolgáltatás naplóinak API-jával gyűjthetők össze. Ezek a naplók egy támogatási jegy részeként adhatók meg a Microsoftnak, és segítenek a hibák elhárításában és megoldásában.

Batch API

Időtúllépési hibák

Az időtúllépési hibák nem jelzik feltétlenül, hogy a szolgáltatás nem tudta feldolgozni a kérést. Időtúllépési hiba esetén vagy próbálkozzon újra a művelettel, vagy kérje le az erőforrás állapotát a helyzetnek megfelelően annak ellenőrzéséhez, hogy a művelet sikeres vagy sikertelen volt-e.

Kapcsolódás

Tekintse át a Batch-megoldások kapcsolatával kapcsolatos alábbi útmutatást.

Hálózati biztonsági csoportok (NSG-k) és felhasználó által megadott útvonalak (UDR-ek)

A Batch-készletek virtuális hálózaton való kiépítésekor győződjön meg arról, hogy szorosan követi a BatchNodeManagement használatára vonatkozó irányelveket.régiószolgáltatás-címke, portok, protokollok és a szabály iránya. A szolgáltatáscímke használata erősen ajánlott; ne használjon mögöttes Batch-szolgáltatás IP-címeket, mert idővel változhatnak. A Batch szolgáltatás IP-címeinek közvetlen használata instabilitást, megszakításokat vagy kimaradásokat okozhat a Batch-készletekben.

Felhasználó által definiált útvonalak (UDR-ek) esetében ajánlott a BatchNodeManagement használata.a Batch-szolgáltatás IP-címei helyett a régiószolgáltatáscímkék , mivel idővel változhatnak.

A DNS tiszteletadása

Győződjön meg arról, hogy rendszerei tiszteletben tartják a DNS élettartamat (TTL) a Batch fiók szolgáltatási URL-címére vonatkozóan. Emellett győződjön meg arról, hogy a Batch szolgáltatás ügyfelei és a Batch szolgáltatáshoz való egyéb kapcsolódási mechanizmusok nem támaszkodnak IP-címekre.

Az 5xx szintű állapotkódokkal és a válaszban található "Kapcsolat: bezárás" fejléccel rendelkező HTTP-kérésekhez módosítani kell a Batch-szolgáltatás ügyfél viselkedését. A Batch-szolgáltatásügyfélnek a meglévő kapcsolat bezárásával, a Batch-fiók szolgáltatás URL-címének DNS-ének újrafeloldásával, valamint egy új kapcsolatra vonatkozó kérések követésével kell követnie a javaslatot.

Kérések automatikus újrapróbálkozása

Győződjön meg arról, hogy a Batch-szolgáltatás ügyfelei rendelkeznek a megfelelő újrapróbálkozási szabályzatokkal a kérések automatikus újrapróbálkozásához még a normál működés során is, és nem kizárólag a szolgáltatáskarbantartási időszakokban. Ezeknek az újrapróbálkozási szabályzatoknak legalább 5 perces időközzel kell rendelkezniük. Az automatikus újrapróbálkozás különböző Batch SDK-kkal érhető el. Az Azure.Compute.Batch újrapróbálkozási működése a Azure.Core ClientOptions.Retry használatával van konfigurálva.

Statikus nyilvános IP-címek

A Batch-készlet virtuális gépei általában nyilvános IP-címeken keresztül érhetők el, amelyek a készlet élettartama során változhatnak. Ez a dinamikus természet megnehezítheti egy olyan adatbázis vagy más külső szolgáltatás kezelését, amely bizonyos IP-címekhez való hozzáférést korlátozza. A probléma megoldásához létrehozhat egy készletet az Ön által felügyelt statikus nyilvános IP-címek készletével. További információ: Azure Batch-készlet létrehozása megadott nyilvános IP-címekkel.

Batch-csomópont mögöttes függőségei

A Batch-megoldások tervezésekor vegye figyelembe az alábbi függőségeket és korlátozásokat.

Rendszer által létrehozott erőforrások

Az Azure Batch felhasználók és csoportok egy csoportját hozza létre és kezeli a virtuális gépen, amelyeket nem szabad módosítani:

Windows:

  • Egy PoolNonAdmin nevű felhasználó
  • WATaskCommon nevű felhasználói csoport

Linux:

  • Egy _azbatch nevű felhasználó

Jótanács

Ezeknek a felhasználóknak vagy csoportoknak az elnevezése implementációs összetevők, és bármikor változhatnak.

Fájlkarbantartó

A Batch aktívan megpróbálja megtisztítani azt a munkakönyvtárat, amelyben a feladatok futnak, miután a megőrzési idő lejárt. A könyvtáron kívül írt fájlok eltávolítása az Ön felelőssége, hogy elkerülje a lemezterület megtelését.

A munkakönyvtár automatikus tisztítása le lesz tiltva, ha windowsos szolgáltatásokat futtat a tevékenység kezdő munkakönyvtárából, mert a mappa még használatban van. Ez a művelet teljesítménycsökkenéshez vezet. A probléma megoldásához módosítsa a szolgáltatás címtárát egy külön könyvtárra, amelyet nem a Batch felügyel.

Következő lépések