Share via


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.

Tipp.

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.

Készletek

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.

Készletkonfigurá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 háttérben vannak lefoglalva a Batch által felügyelt előfizetésekben. 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.

  • virtualMachineConfiguration vagy cloudServiceConfiguration: Bár jelenleg bármelyik konfigurációval létrehozhat készleteket, az új készleteket konfigurálni virtualMachineConfiguration kell, és nem cloudServiceConfiguration. A virtuálisgép-konfigurációs készletek minden jelenlegi és új Batch-funkciót támogatnak. A felhőszolgáltatás konfigurációs készletei nem támogatják az összes funkciót, és nem terveznek új képességeket. 2024. február 29. után nem hozhat létre új cloudServiceConfiguration készleteket, és nem adhat hozzá új csomópontokat a meglévő készletekhez. További információ: Batch-készlet konfigurációjának migrálása a Cloud Servicesből a virtuális gépre.

  • 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ő élettartam-(EOL-) dátumokkal rendelkező képek: Erősen ajánlott elkerülni a közelgő Batch-támogatással (EOL) rendelkező képeket. Ezek a dátumok az API-val, a PowerShell-lel vagy az 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 az 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 létrehozott új erőforrásnak egyedi nevet kell kapnia, amelyet korábban még nem használt. 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 beszednie egy erőforráshoz.

  • Folytonosság a készlet karbantartása és meghibásodása során: A legjobb, ha a feladatok dinamikusan használják a készleteket. Ha a feladatok mindenhez ugyanazt a készletet használják, akkor előfordulhat, hogy a feladatok nem futnak, ha valami baj van a készlettel. 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 egy másik készletben (esetleg egy másik virtuálisgép-mérettel) újra lehet végezni a feladatokat az UpdateJob használatával. Ne támaszkodjon statikus készletazonosítóra azzal a várakozással, hogy az soha nem lesz törölve, és soha ne változzon.

Készletbiztonsá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.

Batch Node Agent frissítései

A kötegcsomópontok ügynökei nem frissülnek automatikusan olyan készletek esetében, amelyek nemero 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 Node-ügynök kibocsátási megjegyzéseit , hogy megértse az új Batch-csomópont-ügynökverziók módosításait. 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.

Feljegyzé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ós rendszer frissítései

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 frissítéseket hajthatnak végre a rendszerindításkor (vagy röviddel ezt követően), ami megzavarhatja bizonyos felhasználó által irányított műveleteket, például a csomagtárház 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.

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. Frissítések a képek a kép közzétevőjének hatáskörébe tartoznak, nem pedig az Azure Batch esetében. Bizonyos, az alattuk microsoft-azure-batchközzétett képek esetében nincs garancia arra, hogy ezek a képek naprakészek maradnak a felsőbb rétegből származó képükkel.

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

A készlet élettartama a készlet konfigurációjára alkalmazott foglalási módszertől és lehetőségektől függően változhat. A készletek tetszőleges élettartammal és változó számú számítási csomóponttal rendelkezhetnek bármikor. 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.

  • Medence rekreáció: Kerülje a medencék napi rendszerességgel történő törlését és újratöltését. Ehelyett hozzon létre egy új készletet, majd frissítse a meglévő feladatokat, hogy az új készletre mutasson. Miután az összes feladatot áthelyezte az új készletbe, törölje a régi készletet.

  • Készlet hatékonysága és számlázása: Maga a Batch 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

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 rendszerké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 egy Azure Compute Gallery-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.

Külső képek

A készletek az Azure Marketplace-en közzétett külső rendszerképek használatával hozhatók létre. 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.

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észletméret nem sikerül, visszaléphet egy készlet skálázására egy biztonsági mentési régióban (vagy régióban).

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 feladatok csak akkor lépnek automatikusan befejezett állapotba, ha explicit módon leállnak. Ez a művelet automatikusan aktiválható az onAllTasksComplete 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 feladatokat, ha már nincs rájuk szükség, még akkor is, ha befejezett állapotban van. 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 automatikus ésaz automatikus skálázás , 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. Emiatt a tevékenységnek a kimenetét a futó csomópontról és egy tartós tárolóba kell áthelyeznie, 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ő tevékenységadatait (feltéve retentionTime , hogy 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.

Feljegyzé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ényben

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.

Csomópontonkénti maximális feladatok beállítása megfelelően

A Batch támogatja a csomópontokon lévő tevékenységek túljegyzését (több feladatot futtat, mint egy csomópont magjai). Önnek kell gondoskodnia arról, hogy a tevékenységek megfelelő méretűek legyenek a készlet csomópontjaihoz. Ha például nyolc olyan feladatot próbál ütemezni, amelyek mindegyike 25%-os processzorhasználatot használ fel egy csomóponton (egy készletben taskSlotsPerNode = 8).

Újrapróbálkozási és újravégzési terv

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 tevékenységben megadott program egy nemzero kilépési kóddal lép ki, a feladat újrapróbálkozott a maxTaskRetryCount.

Bár ritka, a tevékenység belsőleg újrapróbálkozott a számítási csomópont hibái miatt, például nem tudja frissíteni a belső állapotot vagy a csomóponton a feladat futtatása közben fellépő hibát. 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 tevékenység előre ki van-e állítva egy kihasználatlan csomóponton való futtatás során, vagy egy dedikált csomópont meghibásodása miatt megszakad, mindkét helyzetet enyhíti, ha úgy tervezi meg a feladatot, hogy ellenálljon 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ént keresi". Egy másik módszer, ha meggyőződik arról, hogy a tevékenységek idempotensek (a tevékenységek 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 tevékenység egy percre (vagy többre) hajt végre, akkor az ütemezési többletterhelés a teljes számítási idő töredékében kicsi.

A készlet hatókörének használata 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, mivel az adott tevékenységhez szükséges automatikus felhasználói fiók létrehozásához szükséges erőforrások. A nagyobb hatékonyság érdekében fontolja meg ezeknek a tevékenységeknek a készlet hatókörre történő beállítását. További információ: Feladat futtatása automatikus felhasználóként 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.

A kezdési feladatok nem lehetnek hosszú ideig futnak, vagy a számítási csomópont élettartamához vannak kötve. 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.

Tipp.

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 címtár-kereszteződéseket, más néven a címtárak közötti kapcsolatokat nehéz kezelni a feladat- és feladattisztí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 lennie. A számítási csomópontokon az indítási feladatok újrafuttatása lehetséges. Ha a kezdő tevékenység nem idempotens, lehetséges adatvesztés léphet fel az adatlemezeken.

Tipp.

Adatlemez linuxos csatlakoztatásakor, ha a lemez csatlakoztatási pontjának az Azure-beli ideiglenes csatlakoztatási pontok (például /mnt vagy /mnt/resource) alá van ágyazva, ügyelni kell arra, hogy ne vezessen be függőségi versenyeket. Ha például ezeket a csatlakoztatásokat az operációs rendszer automatikusan végrehajtja, verseny lehet a csatlakoztatott ideiglenes lemez és a szülő alatti adatlemez(ek) között. Lépéseket kell tenni annak biztosítása érdekében, hogy a megfelelő függőségeket olyan rendelkezésre álló létesítmények kényszerítsék ki, mint például systemd az adatlemez csatlakoztatásának elhalasztása az indítási feladatra az idempotens adatlemez-előkészítési szkript részeként.

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, a következőt is 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 referencia vissza legyen fordítva a leképezésre az sd[X] 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 munkafolyamathoz fdiskmkfsszükséges eszközöknek és eszközöknek is megadhatja. Másik lehetőségként használhatja lsblkblkid a lemez UUID-jának leképezését is.

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 versenyek a Tipp megjegyzésben leírtak szerint, mielőtt előlépteti a módszert az éles használatba.

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 partíciókkal rendelkező RAW lemezeket kell számba vennie. 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 felszabadítása előtt. A Batch-ügynök naplói a Batch szolgáltatásnaplók feltöltése API-val gyűjthetők. 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.

Operációsrendszer-frissítések kezelése

Felhasználói előfizetési módú Batch-fiókok esetén az automatikus operációsrendszer-frissítések megszakíthatják a tevékenységek előrehaladását, különösen akkor, ha a tevékenységek hosszú ideig futnak. Az idempotens feladatok létrehozása segíthet csökkenteni az ilyen megszakítások által okozott hibákat. Azt is javasoljuk, hogy ütemezz operációsrendszer-rendszerkép-frissítéseket olyan időszakokra, amikor a tevékenységek várhatóan nem futnak.

Windows-készletek enableAutomaticUpdates esetén alapértelmezés szerint be true van állítva. Az automatikus frissítések engedélyezése ajánlott, de ezt az értéket false beállíthatja, ha gondoskodnia kell arról, hogy az operációs rendszer frissítése ne történjen meg váratlanul.

Batch API

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

Az időtúllépési hibák nem feltétlenül jelzik, 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.

Kapcsolatok

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 tiszteletben helyezése

Győződjön meg arról, hogy a rendszerek betartják a DNS élettartamát (TTL) a Batch-fiók szolgáltatás URL-címéhez. 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ó "Csatlakozás ion: close" 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ási képességek különböző Batch SDK-kban érhetők el, például a .NET RetryPolicyProvider osztályban.

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.

Kapcsolat tesztelése a Cloud Services konfigurációjával

Nem használhatja a normál "ping"/ICMP protokollt a felhőszolgáltatásokkal, mert az ICMP protokoll nem engedélyezett az Azure-terheléselosztón keresztül. További információkért lásd az Azure Cloud Services Csatlakozás tivitását és hálózatkezelését.

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 PoolNon nevű felhasználó Rendszergazda
  • WATaskCommon nevű felhasználói csoport

Linux:

  • Egy _azbatch nevű felhasználó

Tipp.

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 a feladatokat futtató munkakönyvtárat a megőrzési idő lejárta után. A könyvtáron kívül írt fájlok az Ön felelőssége, hogy megtisztítsa a lemezterületet.

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