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.
Néhány Azure Batch pool létrehozási és kezelési művelet azonnal megtörténik. Az ilyen műveletek hibáinak észlelése egyszerű, mivel a hibák általában azonnal visszatérnek az API-ból, a parancssorból vagy a felhasználói felületről. Egyes műveletek azonban aszinkronok, a háttérben futnak, és több percet is igénybe vesznek. Ez a cikk a készletek és csomópontok háttérfolyamataiban előforduló hibák észlelésének és elkerülésének módjait ismerteti.
Ügyeljen arra, hogy az alkalmazások átfogó hibaellenőrzést hajtsanak végre, különösen az aszinkron műveletek esetében. Az átfogó hibaellenőrzés segíthet a problémák gyors azonosításában és diagnosztizálásában.
Készlethibák
A készlet hibái az átméretezési időtúllépéssel vagy hibával, az automatikus méretezési hibával vagy a készlet törlési hibájával kapcsolatosak lehetnek. A részletesebb hibaüzenetek befoglalásával a problémák diagnosztizálása és megoldása egyszerűbbé vált.
Továbbító szolgáltatói hiba részletei
A relé szolgáltató hibáit közvetlenül továbbítják az alapul szolgáló Azure-erőforrás-szolgáltatóktól, mint például az Azure Virtuális Gép Méréskészlet (VMSS), és mélyebb betekintést nyújtanak a készletművelet sikertelenségének okába. Ezek a hibák általában akkor fordulnak elő, ha egy készlet létrehozását, átméretezését vagy törlését egy alsó rétegbeli szolgáltatásproblémák befolyásolják.
A továbbítószolgáltató hiba szerkezete
Ezek a hibák strukturált JSON formátumban jelennek meg, amely a következő kulcsösszetevőket tartalmazza:
- Hibakód: A hiba típusa (pl. AllocationFailed, BadRequest stb.).
- Hibaüzenet: A hiba rövid leírása
- Json-szolgáltatói hiba: A mögöttes Azure-szolgáltatás (pl. VMSS) által létrehozott részletes hibaüzenet.
- Csonkolt szolgáltatói hiba: Logikai érték, amely jelzi, hogy a szolgáltató hibaüzenete csonkolt-e a méretkorlátok miatt.
Példa továbbítószolgáltatói hibákra
1. példa
Hibakód:AllocationFailed
Hibaüzenet: A dedikált csomópontok kívánt száma nem foglalható le
JSON-szolgáltatói hiba:
{
"error": {
"code": "BadRequest",
"message": "The selected VM size 'STANDARD_A1_V2' cannot boot Hypervisor Generation '2'. If this was a Create operation, please ensure that the Hypervisor Generation of the Image matches the Hypervisor Generation of the selected VM Size. If this was an Update operation, please choose a Hypervisor Generation '2' VM Size."
}
}
Szolgáltató hiba - JSON csonkolva: hamis
Ez a hiba a virtuális gép mérete és a Hipervizor generáció közötti eltérést jelzi. A hibaüzenet egy kompatibilis virtuálisgép-méret kiválasztását javasolja a probléma megoldásához.
2. példa
Hibakód:AllocationFailed
Hibaüzenet: Belső hiba lépett fel a készlet átméretezésekor
JSON-szolgáltatói hiba:
{
"error": {
"code": "ScopeLocked",
"message": "The scope '/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/VirtualMachineScaleSets/<guid>-azurebatch-VMSS-D' cannot perform write operation because the following scope(s) are locked: '/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/VirtualMachineScaleSets/<guid>-azurebatch-VMSS-D'. Please remove the lock and try again."
}
}
Szolgáltató hiba - JSON csonkolva: hamis
Ez a hiba azt jelzi, hogy a készlet átméretezési művelete meghiúsult, mert egy hatókör zárolva volt, megakadályozva az írási műveletet; a zárolás eltávolítása megoldhatja a problémát.
A Relay szolgáltatói hibái mélyebb betekintést nyújtanak a készletműveleti hibákba, így könnyebben diagnosztizálhatók és megoldhatók közvetlenül az Azure-szolgáltatásokból származó problémák.
Átméretezési időtúllépés vagy hiba
Új készlet létrehozásakor vagy meglévő készlet átméretezésekor meg kell adnia a csomópontok célszámát. A létrehozási vagy átméretezési művelet azonnal befejeződik, de az új csomópontok tényleges lefoglalása vagy a meglévő csomópontok eltávolítása több percet is igénybe vehet. Az átméretezés időtúllépését a Készlet létrehozása vagy a Készlet átméretezése API-kban adhatja meg. Ha a Batch nem tudja lefoglalni a csomópontok célszámát az átméretezési időkorlát alatt, a készlet állandó állapotba kerül, és az átméretezési hibákat jelenti.
Az átméretezés hibáinak gyakori okai a következők:
Az átméretezés időkorlátja túl rövid. Általában az alapértelmezett 15 perces időtúllépés elegendő a csomópontok kiosztásához vagy eltávolításához. Ha nagy számú csomópontot, például több mint 1000 csomópontot szeretne lefoglalni egy Azure Marketplace-rendszerképből, vagy több mint 300 csomópontot egy egyéni virtuálisgép-rendszerképből, beállíthatja az átméretezési időtúllépést 30 percre.
Nincs elegendő magkvóta. A Batch-fiók korlátozott számú magot foglalhat le az összes készletben, és a kvótát elérve leállítja a csomópontok kiosztását. Növelheti az alapkvótát, hogy a Batch több csomópontot foglalhassa le. További információ: Batch szolgáltatáskvóták és korlátok.
Nincs elegendő alhálózati IP-cím, amikor egy készlet egy virtuális hálózaton van. A virtuális hálózati alhálózatnak elegendő IP-címmel kell rendelkeznie ahhoz, hogy minden kért csomóponthoz IP-címet lehessen rendelni. Máskülönben a csomópontokat nem lehet létrehozni. További információ: Azure Batch-készlet létrehozása virtuális hálózaton.
Nincs elegendő erőforrás, ha egy erőforráskészlet egy virtuális hálózaton található. Amikor készletet hoz létre egy virtuális hálózaton, a Batch-fiókkal azonos előfizetésben hozhat létre erőforrásokat, például terheléselosztókat, nyilvános IP-címeket és hálózati biztonsági csoportokat (NSG-ket). Győződjön meg arról, hogy az előfizetési kvóták elegendőek ezekhez az erőforrásokhoz.
Nagy készletek egyéni virtuálisgép-rendszerképekkel. A személyre szabott virtuális gép képeket használó nagyméretű készletek lefoglalása hosszabb időt vehet igénybe, és méretezési időtúllépések léphetnek fel. A korlátozásokra és a konfigurációra vonatkozó javaslatokért lásd : Készlet létrehozása az Azure Compute Gallery használatával.
Automatikus skálázási hibák
Beállíthatja, hogy az Azure Batch automatikusan skálázza a készlet csomópontjainak számát, és megadhatja a készlet automatikus méretezési képletének paramétereit. A Batch szolgáltatás ezt követően a képlet használatával rendszeresen kiértékeli a készletben lévő csomópontok számát, és új célszámokat állít be. További információ: Automatikus képlet létrehozása számítási csomópontok skálázására a Batch-készletben.
Az automatikus skálázás használatakor a következő problémák léphetnek fel:
- Az automatikus skálázás kiértékelése sikertelen.
- Az eredményként kapott átméretezési művelet meghiúsul, és túllépi az időkorlátot.
- Az automatikus skálázási képlettel kapcsolatos probléma helytelen csomópont-célértékeket eredményez. Az átméretezés működhet vagy időtúllépést eredményezhet.
Az utolsó automatikus skálázási értékeléssel kapcsolatos információkért használja a Készlet automatikus méretezésének kiértékelése tulajdonságot. Ez a tulajdonság jelenti a kiértékelési időt, az értékeket és az eredményt, valamint a teljesítményhibákat.
A készlet átméretezésének befejezését rögzítő esemény információkat rögzít az összes értékelésről.
Készlettörlés hibái
Csomópontokat tartalmazó készlet törléséhez a Batch először törli a csomópontokat, ami több percet is igénybe vehet. A Batch ezután törli magát a készletobjektumot.
A Batch a törlési folyamat során beállítja a poolState-tdeleting. A hívó alkalmazás észlelheti, hogy a készlet törlése túl sokáig tart-e a state és stateTransitionTime tulajdonságok használatával.
Ha a készlet törlése a vártnál hosszabb időt vesz igénybe, a Batch rendszeresen újrapróbálkozza a készlet sikeres törléséig. Bizonyos esetekben a késés oka az Azure szolgáltatáskimaradása vagy más átmeneti problémák. A készlet sikeres törlését megakadályozó egyéb tényezők esetén szükség lehet a probléma megoldására. Ezek a tényezők a következő problémákat okozhatják:
Előfordulhat, hogy az erőforrás-zárolások a Batch által létrehozott erőforrásokra vagy a Batch által használt hálózati erőforrásokra kerülnek.
A létrehozott erőforrások a Batch által létrehozott erőforrásoktól függhetnek. Ha például létrehoz egy medencét egy virtuális hálózaton, a Batch létrehoz egy NSG-t, egy nyilvános IP-címet és egy terheléselosztót. Ha ezeket az erőforrásokat a készleten kívül használja, nem törölheti a készletet.
Előfordulhat, hogy az
Microsoft.Batcherőforrás-szolgáltató le van regisztrálva a készletet tartalmazó előfizetésből.A felhasználói előfizetési módú Batch-fiókok esetén előfordulhat, hogy a
Microsoft Azure Batchmár nem rendelkezik a példánykészletet tartalmazó előfizetéshez tartozó közreműködői vagy tulajdonosi szerepkörrel. További információért lásd: A Batch hozzáférésének engedélyezése az előfizetéshez.
Csomóponthibák
Még akkor is, ha a Batch sikeresen lefoglal csomópontokat egy készletben, különféle okok miatt egyes csomópontok állapota nem megfelelő, és nem futtathatók a feladatok. Ezek a csomópontok továbbra is díjakat vonnak maga után, ezért fontos észlelni a problémákat, hogy ne kelljen fizetni a nem használható csomópontokért. A gyakori csomóponthibák ismerete és az aktuális feladatállapot ismerete hasznos a hibaelhárításhoz.
Feladathibák kezelése megkezdése
Megadhat egy fürt számára opcionális kezdési feladatot. Mint minden tevékenységnél, a kezdő tevékenység is parancssort használ, és letöltheti az erőforrásfájlokat a tárolóból. A kezdési feladat minden csomóponton lefut a csomópont indításakor. A waitForSuccess tulajdonság azt határozza meg, hogy a Batch megvárja-e, amíg a kezdő tevékenység sikeresen befejeződik, mielőtt bármilyen tevékenységet ütemez egy csomópontra. Ha úgy konfigurálja a csomópontot, hogy várja meg a sikeres kezdési tevékenység befejezését, de a kezdési tevékenység meghiúsul, a csomópont nem használható, de továbbra is díjakat von maga után.
Az indítási feladat hibáit a felső szintű startTaskInformation csomópont tulajdonság taskExecutionResult és taskFailureInformation tulajdonságával észlelheti.
A sikertelen kezdési feladat miatt a Batch a computeNodeStatestarttaskfailedértéket is beállítja , ha waitForSuccess az értékre lett állítva true.
Mint minden tevékenység esetében, a kezdési feladat meghiúsulásának számos oka lehet. A hibaelhárításhoz ellenőrizze az stdout, az stderr és minden más feladatspecifikus naplófájlt.
A kezdő feladatoknak újrafutóknak kell lenniük, mert a kezdő feladat többször is futtatható ugyanazon a csomóponton belül, például amikor a csomópontot újrakozísértik vagy újraindítják. Ritka esetekben, amikor egy indítási feladat egy esemény után fut, az egyik operációs rendszer vagy a rövid élettartamú lemez újratelepül, míg a másik nem. Mivel a Batch elindítja a feladatokat, és az összes Batch-tevékenység a rövid élettartamú lemezről fut, ez a helyzet általában nem jelent problémát. Ha azonban a kezdési feladat egy alkalmazást telepít az operációsrendszer-lemezre, és más adatokat tart a rövid élettartamú lemezen, szinkronizálási problémák merülhetnek fel. Ennek megfelelően védje az alkalmazást, ha mindkét lemezt használja.
Az alkalmazáscsomag letöltése sikertelen
Egy készlethez megadhat egy vagy több alkalmazáscsomagot. A Batch letölti a megadott csomagfájlokat az egyes csomópontokra, és feloldja a fájlokat a csomópont indítása után, de a feladatok ütemezése előtt. Gyakori, hogy egy indítási feladatparancsot használ alkalmazáscsomagokkal, például fájlok más helyre másolásához vagy a beállítás futtatásához.
Ha egy alkalmazáscsomag letöltése és feloldása sikertelen, a computeNodeError tulajdonság jelenti a hibát, és beállítja a csomópont állapotát unusable.
Tárolóletöltési hiba
Megadhat egy vagy több tárolóhivatkozást egy tárházban. A Batch minden csomópontra letölti a megadott tárolókat. Ha a tároló nem tölthető le, a computeNodeError tulajdonság jelenti a hibát, és beállítja a csomópont állapotát unusable.
Csomópont OS frissítések
Windows-készletek esetén, alapértelmezés szerint enableAutomaticUpdatestrue van beállítva. Bár az automatikus frissítések engedélyezése ajánlott, a 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. Ezt az értéket false akkor állíthatja be, ha gondoskodnia kell arról, hogy az operációs rendszer frissítése ne történjen meg váratlanul.
Használhatatlan állapotban lévő csomópont
A Batch több okból is beállíthatja a computeNodeStateunusable értéket. Nem ütemezhet feladatokat egy unusable csomópontra, de a csomópont továbbra is díjakat von maga után.
Ha a Batch meg tudja állapítani az okot, a computeNodeError tulajdonság jelentést készít róla. Ha egy csomópont a unusable állapotban van, de nincs computeNodeError, az azt jelenti, hogy a Batch nem tud kommunikálni a virtuális géppel. Ebben az esetben a Batch mindig megpróbálja helyreállítani a virtuális gépet. A Batch azonban nem próbálja meg automatikusan helyreállítani azokat a virtuális gépeket, amelyek nem sikerült telepíteniük az alkalmazáscsomagokat vagy tárolókat, még akkor sem, ha az állapotuk unusable.
A csomópontok egyéb okai unusable a következők lehetnek:
- Az egyéni virtuálisgép-rendszerkép érvénytelen. Például a kép nincs megfelelően előkészítve.
- A virtuális gép infrastruktúra-hiba vagy alacsony szintű frissítés miatt kerül áthelyezésre. A Batch helyreállítja a csomópontot.
- A virtuálisgép-rendszerkép olyan hardveren lett üzembe helyezve, amely nem támogatja azt.
- A virtuális gépek egy Azure-beli virtuális hálózaton vannak, és a forgalom le lett tiltva a kulcsportok felé.
- A virtuális gépek virtuális hálózaton vannak, de az Azure Storage felé irányuló kimenő forgalom le van tiltva.
- A virtuális gépek egyéni DNS-konfigurációval rendelkező virtuális hálózaton találhatók, és a DNS-kiszolgáló nem tudja feloldani az Azure Storage-t.
Csomópontügynök naplófájljai
Az egyes készletcsomópontokon futó Batch-ügynökfolyamat naplófájlokat biztosít, amelyek segíthetnek, ha kapcsolatba kell lépnie az ügyfélszolgálattal egy készletcsomóponttal kapcsolatos problémával kapcsolatban. A csomópont naplófájljait az Azure Portalon, a Batch Explorerben vagy a számítási csomóponton keresztül töltheti fel – Batch Service Logs API feltöltése. A naplófájlok feltöltése és mentése után törölheti a csomópontot vagy a készletet a csomópontok futtatásának költségeinek megtakarításához.
A csomópont lemeze megtelt
A Batch egy csomópontkészlet virtuális gépének ideiglenes meghajtóját használja a következő feladatfájlok, feladatfájlok és megosztott fájlok tárolására:
- Alkalmazáscsomagfájlok
- Feladat erőforrásfájljai
- Alkalmazásspecifikus fájlok, amelyeket a Batch-mappák egyikére töltöttek le
- Stdout - és stderr-fájlok minden feladatalkalmazás végrehajtásához
- Alkalmazásspecifikus kimeneti fájlok
Az olyan fájlok, mint az alkalmazáscsomagok vagy az indítási feladat erőforrásfájlok csak egyszer íródnak, amikor a Batch létrehozza a készletcsomópontot. Annak ellenére, hogy csak egyszer írnak, ha ezek a fájlok túl nagyok, kitölthetik az ideiglenes meghajtót.
Más fájlok, például az stdout és az stderr minden olyan feladathoz meg vannak írva, amelyet egy csomópont futtat. Ha sok feladat fut ugyanazon a csomóponton, vagy a feladatfájlok túl nagyok, kitölthetik az ideiglenes meghajtót.
A csomópontnak az operációsrendszer-lemezen is kis mennyiségű helyre van szüksége a felhasználók létrehozásához az indítás után.
Az ideiglenes meghajtó mérete a virtuális gép méretétől függ. A virtuális gép méretének kiválasztásakor az egyik szempont annak biztosítása, hogy az ideiglenes meghajtó elegendő helyet biztosítson a tervezett számítási feladathoz.
Amikor hozzáad egy készletet az Azure Portalon, megjelenítheti a virtuálisgép-méretek teljes listáját, beleértve az erőforráslemez méretoszlopát is. A virtuálisgép-méreteket leíró cikkek temp Storage oszlopot tartalmazó táblákkal rendelkeznek. További információ: Számításoptimalizált virtuálisgép-méretek. Egy példa mérettáblázatot az Fsv2 sorozatban talál.
Megadhatja az egyes tevékenységek által írt fájlok megőrzési idejét. A megőrzési idő határozza meg, hogy mennyi ideig tartsa meg a feladatfájlokat, mielőtt automatikusan megtisztítja őket. A megőrzési időt csökkentheti a tárolási követelmények csökkentése érdekében.
Ha az ideiglenes vagy operációs rendszer lemeze elfogy, vagy közel van ahhoz, hogy elfogyjon a hely, a csomópont a computeNoteState-be unusablekerül, és a csomóponthiba azt jelzi, hogy a lemez megtelt.
Ha nem biztos abban, hogy mi foglal helyet a csomóponton, próbáljon meg távoli kapcsolatot létesíteni a csomóponttal, és manuálisan megvizsgálni. A Fájl – List From Compute Node API használatával is megvizsgálhatja a Batch által felügyelt mappákban lévő fájlokat, például a feladatkimeneteket. Ez az API csak a Batch által felügyelt könyvtárakban lévő fájlokat listázza. Ha a feladatok máshol hoztak létre fájlokat, ez az API nem jeleníti meg őket.
Miután minden szükséges adatot lekért a csomópontról, vagy feltöltötte azt egy tartós tárolóba, szükség szerint törölheti az adatokat, hogy helyet szabadítson fel.
Törölheti a régi befejezett feladatokat vagy tevékenységeket, amelyek tevékenységadatai továbbra is a csomópontokon találhatóak. Keresse meg a recentTasks gyűjteményt a taskInformation elem csomópontjában, vagy használja a File – List From Compute Node API-t. A feladat törlése törli a feladat összes feladatát. A feladatok törlése a feladatban az adatok törlését váltja ki a csomópontok feladatkönyvtáraiban, és helyet szabadít fel. Miután felszabadított elég helyet, indítsa újra a csomópontot. A csomópontnak ki kell lépnie a unusable állapotból, és újra be kell lépnie a idle állapotba.
A VirtualMachineConfiguration-készletek egyik használhatatlan csomópontjának helyreállításához távolítsa el a csomópontot a készletből a Készlet – Csomópontok eltávolítása API használatával. Ezután ismét növelheti a készletet, hogy lecserélje a rossz csomópontot egy frissre.
Fontos
A Reimage jelenleg nem támogatott a VirtualMachineConfiguration-készletek esetében.
Következő lépések
- További információ a feladat- és feladathibák ellenőrzéséről.
- Ismerje meg az Azure Batch használatának ajánlott eljárásait .