Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 a503fejléc. -
4xxhibák, példáulAlreadyExistsésInvalidOperation. 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:
- Az Azure portál
- Batch REST API: adduser
- Azure. Compute.Batch API: BatchClient.CreateNodeUserAsync
- Batch Python-modul: add_user
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.
- Batch REST API: újraindítás
- Azure. Compute.Batch API: BatchClient.RebootNodeAsync
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.
- Batch REST API: reimage
- Azure. Compute.Batch API: BatchClient.ReimageNodeAsync
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.
- Batch REST API: removenodes
- Azure. Compute.Batch API: BatchClient készlet módszerei
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.
- Batch REST API: ütemezés engedélyezése
- Azure. Compute.Batch API: BatchClient.EnableNodeSchedulingAsync
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.