Hibakezelés és észlelés az Azure Batchben

Időnként előfordulhat, hogy a feladat- és alkalmazáshibákat az Azure Batch-megoldásban kell kezelnie. Ez a cikk a Batch-hibák különböző típusait és a gyakori problémák megoldását ismerteti.

Hibakódok

A Batchben megjelenő általános hibák néhány általános típusa a következő:

  • A Batch-et soha nem elérő kérések hálózatkezelési hibái vagy hálózatkezelési hibák, ha a Batch-válasz nem érte el időben az ügyfelet.
  • Belső kiszolgálóhibák. Ezek a hibák szabványos 5xx állapotkódú HTTP-választ kapnak.
  • Szabályozással kapcsolatos hibák. Ezek a hibák közé tartoznak a 429 állapotkóddal ellátott HTTP-válaszok vagy a 503 fejléc.
  • 4xx hibák, például AlreadyExists és InvalidOperation. Ezek a hibák azt jelzik, hogy az erőforrás nem megfelelő állapotban van az állapotváltáshoz.

Az egyes hibakódokkal kapcsolatos részletes információkért tekintse meg a Batch állapotát és a hibakódokat. Ez a hivatkozás hibakódokat tartalmaz a REST API-hoz, a Batch szolgáltatáshoz, valamint a feladatokhoz és az ütemezéshez.

Alkalmazáshibák

A végrehajtás során egy alkalmazás diagnosztikai kimenetet hozhat létre. Ezzel a kimenettel elháríthatja a problémákat. A Batch szolgáltatás szabványos kimenetet és standard hibakimenetet ír a számítási csomópont feladatkönyvtárában lévő stdout.txtésstderr.txt fájlokba. További információ: Fájlok és könyvtárak a Batchben.

A kimeneti fájlok letöltéséhez használja az Azure Portalt vagy a Batch SDK-k egyikét. Ha például hibaelhárítási célból szeretne fájlokat lekérni, használja a BatchClient.GetNodeFile a Azure. Compute.Batch-kódtár.

Feladathibák

A feladathibák több kategóriába sorolhatók.

Előfeldolgozási hibák

Ha egy tevékenység nem indul el, a rendszer előfeldolgozási hibát állít be a tevékenységhez. Az előfeldolgozási hibák akkor fordulhatnak elő, ha:

  • A tevékenység erőforrásfájljai át lettek helyezve.
  • A tárfiók már nem érhető el.
  • Egy másik hiba történt, amely megakadályozta a fájlok csomópontra történő sikeres másolását.

Fájlfeltöltési hibák

Ha a feladathoz megadott fájlok bármilyen okból nem tölthetők fel, a rendszer fájlfeltöltési hibát ad meg a feladathoz. Fájlfeltöltési hibák akkor fordulhatnak elő, ha:

  • Az Azure Storage eléréséhez megadott közös hozzáférésű jogosultságkód (SAS) jogkivonat érvénytelen.
  • Az SAS-jogkivonat nem biztosít írási engedélyeket.
  • A tárfiók már nem érhető el.
  • Egy másik hiba történt, amely megakadályozta a fájlok csomópontról történő sikeres másolását.

Alkalmazás hibák

A feladat parancssora által megadott folyamat is meghiúsulhat. További információ: Tevékenység kilépési kódjai.

Alkalmazáshibák esetén konfigurálja úgy a Batchet, hogy automatikusan újrapróbálkozta a feladatot egy megadott számú alkalommal.

Kényszerhibák

Egy feladat vagy tevékenység maximális végrehajtási időtartamának megadásához állítsa be a kényszert maxWallClockTime . Ezzel a beállítással leállítja a sikertelen feladatokat.

Ha a tevékenység túllépi a maximális időt:

  • A tevékenység befejezettként van megjelölve.
  • A kilépési kód a következőre 0xC000013Avan állítva: .
  • Az schedulingError mező a következőként { category:"ServerError", code="TaskEnded"}van megjelölve: .

Tevékenység kilépési kódjai

Amikor egy tevékenység végrehajt egy folyamatot, a Batch feltölti a tevékenység kilépési kód tulajdonságát a folyamat visszatérési kódjával. Ha a folyamat nem aero kilépési kódot ad vissza, a Batch szolgáltatás sikertelenként jelöli meg a feladatot.

A Batch szolgáltatás nem határozza meg egy tevékenység kilépési kódját. Maga a folyamat vagy az operációs rendszer, amelyen a folyamat fut, meghatározza a kilépési kódot.

Feladathibák vagy megszakítások

Előfordulhat, hogy a tevékenységek időnként meghiúsulnak vagy megszakadnak. Például:

  • Előfordulhat, hogy maga a feladatalkalmazás nem sikerül.
  • A csomópont, amelyen a feladat fut, újraindulhat.
  • Az átméretezési művelet eltávolíthatja a csomópontot a halmazból. Ez az esemény akkor fordulhat elő, ha a készlet felszabadítási szabályzata azonnal eltávolítja a csomópontokat anélkül, hogy megvárná a feladatok befejezését.

A Batch minden esetben automatikusan újra lekérdezheti a feladatot egy másik csomóponton való végrehajtáshoz.

Előfordulhat az is, hogy egy időszakos probléma miatt egy feladat nem válaszol, vagy túl sokáig tart a végrehajtás. A tevékenységek maximális végrehajtási időközét beállíthatja. Ha egy tevékenység túllépi az időközt, a Batch szolgáltatás megszakítja a tevékenységalkalmazást.

Csatlakozás számítási csomópontokhoz

A hibakeresést és a hibaelhárítást úgy végezheti el, ha távolról jelentkezik be egy számítási csomópontba. Az Azure Portal használatával töltse le a Windows-csomópontok távoli asztali protokolljának (RDP) fájlját, és szerezze be a Secure Shell (SSH) kapcsolati adatait a Linux-csomópontokhoz. Ezeket az információkat az Azure.Compute.Batch vagy a Batch Python API-k használatával is letöltheti.

Ha RDP-n vagy SSH-n keresztül szeretne csatlakozni egy csomóponthoz, először hozzon létre egy felhasználót a csomóponton. Használja az alábbi módszerek egyikét:

Szükség esetén konfigurálja vagy tiltsa le a számítási csomópontokhoz való hozzáférést.

Problémacsomópontok hibaelhárítása

A Batch-ügyfélalkalmazás vagy -szolgáltatás megvizsgálhatja a sikertelen tevékenységek metaadatait egy problémacsomópont azonosításához. Minden csomópont a készletben egyedi azonosítóval rendelkezik. A tevékenység metaadatai tartalmazzák azt a csomópontot, ahol egy tevékenység fut. Miután megtalálta a problémás csomópontot, próbálkozzon az alábbi módszerekkel a hiba megoldásához.

Újraindítási csomópont

A csomópont újraindítása időnként kijavítja a látens problémákat, például elakadt vagy összeomlott folyamatokat. Ha a csomópontkészlet kezdési feladatot használ, vagy a feladat feladat-előkészítési műveletet tartalmaz, a csomópont újraindítása végrehajtja ezeket a műveleteket.

Csomópont újraimaztatása

A csomópont újraimálásával újratelepíti az operációs rendszert. A feladatok és a munkaelőkészítési feladatok újrafuttatására az újratelepítés után kerül sor.

Csomópont eltávolítása a csoportból

Néha szükség van a csomópont eltávolítására a csoportból.

Feladatütemezés letiltása a csomóponton

A csomópont feladatütemezésének letiltása hatékonyan offline állapotba helyezi a csomópontot. A Batch nem rendel további feladatokat a csomóponthoz. A csomópont azonban továbbra is fut a csoportban. Ezután a sikertelen tevékenységek adatainak elvesztése nélkül tovább vizsgálhatja a hibákat. A csomópont emellett nem okoz további feladathibákat.

Tiltsa le például a feladatütemezést a csomóponton. Ezután jelentkezzen be távolról a csomópontra. Vizsgálja meg az eseménynaplókat, és végezze el az egyéb hibaelhárítást. A problémák megoldása után engedélyezze ismét a feladatütemezést a csomópont online állapotba helyezéséhez.

Ezekkel a műveletekkel megadhatja, hogy a Batch kezeli-e a csomóponton jelenleg futó feladatokat. Ha például letiltja a feladatütemezést az Azure.Compute.Batch API-val, megadhat egy felsorolási értéket a(z) BatchNodeDisableSchedulingOption elemhez. A következő lehetőségek közül választhat:

  • Futó feladatok leállítása: Terminate
  • Feladatok ismételt lekérdezése más csomópontokon való ütemezéshez: Requeue
  • Engedélyezze, hogy a feladatok befejeződjenek a művelet elvégzése előtt: TaskCompletion

Újrapróbálkozás hibák után

A Batch API-k értesítik a hibákról. Az összes API újrapróbálkozható a beépített globális újrapróbálkozás-kezelővel. Ezt a lehetőséget ajánlott használni.

Hiba után várjon néhány másodpercet az újrapróbálkozás előtt. Ha túl gyakran vagy túl gyorsan próbálkozik újra, az újrapróbálkozási kezelő korlátozza a kéréseket.

Következő lépések