Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Olika fel kan inträffa när du lägger till, schemalägger eller kör Azure Batch-jobb och -uppgifter. Det är enkelt att identifiera fel som uppstår när du lägger till jobb och uppgifter. API:et, kommandoraden eller användargränssnittet returnerar vanligtvis eventuella fel omedelbart. Den här artikeln beskriver hur du söker efter och hanterar fel som uppstår när jobb och uppgifter har skickats.
Misslyckade jobb
Ett jobb är en grupp med en eller flera uppgifter som specificerar kommandorader som ska köras. Du kan ange följande valfria parametrar när du lägger till ett jobb. Dessa parametrar påverkar hur jobbet kan misslyckas.
JobConstraints. Du kan också använda
maxWallClockTimeegenskapen för att ange den maximala tiden som ett jobb kan vara aktivt eller körs. Om jobbet överskridermaxWallClockTime, avslutas det med egenskapenterminateReasoninställd påMaxWallClockTimeExpiryi JobExecutionInformation.JobPreparationTask. Du kan också ange en jobbförberedelseaktivitet som ska köras på varje beräkningsnod som är schemalagd för att köra en jobbaktivitet. Noden kör förberedelseuppgiften för jobbet innan första gången den kör en uppgift för jobbet. Om jobbförberedelseuppgiften misslyckas körs inte uppgiften och jobbet slutförs inte.
JobReleaseTask. Du kan också ange en jobbutsläppsaktivitet för jobb som har en jobbförberedelseaktivitet. När ett jobb avslutas körs jobbutlösningsaktiviteten på varje poolnod som körde en jobbförberedelseaktivitet. Om en jobbutlämningsuppgift misslyckas flyttas jobbet ändå till ett
completedtillstånd.
I Azure Portal kan du ange dessa parametrar i jobbhanteraren, förberedelse- och versionsaktiviteter och avancerade avsnitt på skärmen Batch Lägg till jobb.
Jobbegenskaper
Kontrollera följande jobbegenskaper i JobExecutionInformation efter fel:
Egenskapen
terminateReasonangerMaxWallClockTimeExpiryom jobbet överskred detmaxWallClockTimeangivna i jobbbegränsningarna och därför jobbet avslutades. Den här egenskapen kan också anges tilltaskFailedom jobbetsonTaskFailureattribut är inställt påperformExitOptionsJobAction, och en aktivitet misslyckas med ett avslutningsvillkor som anger ettjobActionavterminatejob.Egenskapen JobSchedulingError anges om det har uppstått ett schemaläggningsfel.
Jobbförberedelseuppgifter
En instans av en jobbförberedelseaktivitet körs på varje beräkningsnod första gången noden kör en uppgift för jobbet. Du kan se jobbförberedelseuppgiften som en uppgiftsmall, där flera instanser kan köras, upp till antalet noder i en pool. Kontrollera jobbförberedelseaktivitetsinstanserna för att avgöra om det fanns fel.
Du kan använda API:et Job – List Preparation and Release Task Status för att visa exekveringsstatus för alla instanser av förberedelse- och versioneringsuppgifter för ett angivet jobb. Precis som med andra uppgifter är JobPreparationTaskExecutionInformation tillgängligt med egenskaper som failureInfo, exitCodeoch result.
När en jobbförberedelseaktivitet körs flyttas aktiviteten som utlöste jobbförberedelseaktiviteten till en taskState med preparing. Om jobbförberedelseaktiviteten misslyckas återgår den utlösande aktiviteten till active tillståndet och körs inte.
Om en jobbförberedelseaktivitet misslyckas körs inte den utlösande jobbaktiviteten. Jobbet slutförs inte och har fastnat. Om det inte finns några andra jobb med aktiviteter som kan schemaläggas kanske inte poolen används.
Uppgifter för jobbpubliceringen
En instans av en jobbpubliceringsaktivitet körs när jobbet avslutas på varje nod som körde en jobbförberedelseaktivitet. Kontrollera instanserna av arbetsuppgiftsutgivning för att avgöra om det finns några fel.
Du kan använda API:et Job – List Preparation and Release Task Status för att visa exekveringsstatus för alla instanser av förberedelse- och versioneringsuppgifter för ett angivet jobb. Precis som med andra uppgifter är JobReleaseTaskExecutionInformation tillgängligt med egenskaper som failureInfo, exitCodeoch result.
Om en eller flera jobbpubliceringsaktiviteter misslyckas avslutas jobbet fortfarande och flyttas till ett completed tillstånd.
Uppgiftsmisslyckanden
Jobbaktiviteter kan misslyckas av följande orsaker:
- Aktivitetskommandoraden misslyckas och returnerar med en icke-nollavslutskod.
- En eller flera
resourceFilessom har specificerats för en uppgift laddas inte ned. - En eller flera
outputFilesangivna för en aktivitet laddas inte upp. - Den förflutna tiden för aktiviteten överskrider den
maxWallClockTimeegenskap som anges i TaskConstraints.
Kontrollera i samtliga fall följande egenskaper efter fel och information om felen:
Egenskapen TaskExecutionInformation har flera egenskaper som ger information om ett fel. TaskExecutionResult anger om aktiviteten misslyckades av någon anledning och
exitCodefailureInfoger mer information om felet.Aktiviteten flyttas alltid till
completedTaskState, oavsett om den lyckades eller misslyckades.
Överväg effekten av aktivitetsfel på jobbet och på eventuella aktivitetsberoenden. Du kan ange ExitConditions för att konfigurera åtgärder för beroenden och för jobbet.
- DependencyAction styr om aktiviteter som är beroende av den misslyckade aktiviteten ska blockeras eller köras.
- JobAction styr om den misslyckade aktiviteten gör att jobbet inaktiveras, avslutas eller ändras.
Uppgiftskommandorader
Aktivitetskommandorader körs inte under ett gränssnitt på beräkningsnoder, så de kan inte internt använda gränssnittsfunktioner som miljövariabelexpansion. Om du vill dra nytta av sådana funktioner måste du anropa gränssnittet på kommandoraden. Mer information finns i Kommandoradsexpansion av miljövariabler.
Aktivitetskommandoraden skriver till stderr.txt och stdout.txt filer. Ditt program kan också skriva till programspecifika loggfiler. Se till att implementera omfattande felkontroll för ditt program för att snabbt identifiera och diagnostisera problem.
Aktivitetsloggar
Om poolnoden som körde en aktivitet fortfarande finns kan du hämta och visa aktivitetsloggfilerna. Flera API:er tillåter att aktivitetsfiler listas och hämtas, till exempel Fil – Hämta från aktivitet. Du kan också lista och visa loggfiler för en uppgift eller nod med hjälp av Azure Portal.
Längst upp på sidan Översikt för en nod väljer du Ladda upp batchloggar.
På sidan Ladda upp Batch-loggar väljer du Välj lagringscontainer, väljer en Azure Storage-container att ladda upp till och väljer sedan Starta uppladdning.
Du kan visa, öppna eller ladda ned loggarna från lagringscontainersidan.
Utdatafiler
Eftersom Batch-pooler och poolnoder ofta är tillfälliga, med noder som kontinuerligt läggs till och tas bort, är det bäst att spara loggfilerna när jobbet körs. Utdatafiler för aktiviteter är ett praktiskt sätt att spara loggfiler i Azure Storage. För mer information, se Spara uppgiftsdata till Azure Storage med Batch-tjänstens API.
Vid varje filuppladdning skriver Batch två loggfiler till beräkningsnoden, fileuploadout.txt och fileuploaderr.txt. Du kan undersöka loggfilerna för att lära dig mer om ett specifikt fel. Om filuppladdningen inte gjordes, till exempel på grund av att själva uppgiften inte kunde köras, finns inte dessa loggfiler.
Nästa steg
- Läs mer om Batch-jobb och uppgifter samt jobbförberedelser och lanseringsuppgifter.
- Läs mer om Batch-pool- och nodfel.