Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Gründe für Ausführungsfehler
Wenn ein Lauf fehlschlägt, verwenden Sie den GetRun API-Vorgang zum Abrufen der Fehlerursache.
Die Reihenfolge, in der der Ausführungsdatensatz, die Datensätze für fehlgeschlagene Aufgaben und die Protokolle gelesen werden, finden Sie unter Debuggen eines HealthOmics Workflow-Ausführung.
Überprüfe die Fehlerursache, um herauszufinden, warum der Lauf fehlgeschlagen ist. In der folgenden Tabelle sind die einzelnen Fehlergründe zusammen mit einer Beschreibung des Fehlers aufgeführt.
| Failure reason (Fehlerursache) | Fehlerbeschreibung |
|---|---|
|
|
Es gibt nicht genug Instance-Kapazität für keinen der Beschleuniger, die Sie im |
|
|
HealthOmics hat keine Berechtigung, die Rolle zu übernehmen. Geben Sie den an HealthOmics Principal in der Vertrauensbeziehung für die Rolle. |
|
|
Workflow-Aufgabe konnte nicht gestartet werden: |
|
|
Workflow-Aufgabe konnte nicht gestartet werden: |
|
|
Bild wurde unter URI nicht gefunden: |
ECR_PERMISSION_ERROR |
HealthOmics hat keine Berechtigung, auf die Bild-URI zuzugreifen. Vergewissern Sie sich, dass das private Amazon ECR-Repository existiert und Zugriff auf das gewährt hat HealthOmics Dienstprinzipal. |
|
|
Das Amazon ECR-Repository wurde für den Bild-URI nicht gefunden: |
|
|
Der Export ist fehlgeschlagen. Stellen Sie sicher, dass der Ausgabe-Bucket existiert und die Run-Rolle über Schreibberechtigungen für den Bucket verfügt. |
|
|
Das Dateisystem hat nicht genug Speicherplatz. Erhöhen Sie die Größe des Dateisystems und führen Sie es erneut aus. |
|
|
Das Bild konnte nicht verifiziert werden |
|
|
Der Import ist fehlgeschlagen. Stellen Sie sicher, dass die Eingabedatei vorhanden ist und die Ausführungsrolle auf die Eingabe zugreifen kann. |
INACTIVE_OMICS_STORAGE_RESOURCE |
Die HealthOmics Die Speicher-URI befindet sich nicht im Status AKTIV. Aktivieren Sie das Leseset und versuchen Sie es erneut. Weitere Informationen zur Aktivierung von Lesesätzen finden Sie unter Lesesätze aktivieren in HealthOmics. |
EINGABE_URI_NICHT_GEFUNDEN |
Die angegebene URI existiert nicht: uri. Überprüfen Sie, ob der URI-Pfad existiert, und bestätigen Sie, dass die Rolle auf das Objekt zugreifen kann. |
|
|
Es ist nicht genug Instanzkapazität vorhanden, um den Workflow-Lauf abzuschließen. Warten Sie und versuchen Sie erneut, den Workflow auszuführen. Weitere Informationen zur Behebung fehlgeschlagener Fehler bei der Instanzreservierung finden Sie unter Behebung von INSTANCE_RESERVATION_FAILED-Fehlern. |
UNGÜLTIGE_ECR_IMAGE-URI |
Die Amazon ECR-Image-URI-Struktur ist nicht gültig. Geben Sie eine gültige URI ein und versuchen Sie es erneut. |
|
|
Die angeforderte GPU, CPU oder Arbeitsspeicher ist entweder zu hoch für die verfügbare Rechenkapazität oder liegt unter dem Mindestwert von 1 für die Aufgabe ID. |
|
|
Die URI-Struktur ist nicht gültig uri. Überprüfen Sie die URI-Struktur und versuchen Sie es erneut. |
MODIFIED_INPUT_RESOURCE |
Der angegebene URI |
|
|
Die Workflow-Aufgabe |
|
|
Der Lauf ist fehlgeschlagen, weil die Aufgabe fehlgeschlagen ist. Um den Fehler der Aufgabe zu debuggen, verwenden Sie den GetRunTask API-Betrieb und Amazon CloudWatch Protokolliert den Stream. |
|
|
Führen Sie Timeout danach aus |
SERVICEFEHLER |
Im Dienst ist ein vorübergehender Fehler aufgetreten. Versuchen Sie erneut, den Workflow auszuführen. |
TASK_TIMED_OUT |
Aufgabe id hat nachher das Zeitlimit überschritten number Sekunden. |
|
|
Die gesamte Eingabegröße ist zu hoch. Verringern Sie die Eingabegröße und versuchen Sie es erneut. |
|
|
Workflow-Ausführung ist fehlgeschlagen. Überprüfen Sie das CloudWatch Log-Engine-Log-Stream: |
|
|
HealthOmics unterstützt die angeforderte Nextflow-Version nicht: |
|
|
Der angeforderte Instanztyp wird in nicht unterstützt |
Behebung von INSTANCE_RESERVATION_FAILED-Fehlern
GPU-Instances sind On-Demand-Ressourcen, die möglicherweise nicht immer sofort in Ihrer bevorzugten Availability Zone oder Region verfügbar sind.
Was HealthOmics macht automatisch
HealthOmics führt in Ihrem Namen mehrere Optimierungen durch, um den Erfolg der GPU-Akquisition zu maximieren:
-
Multi-AZ Suche: HealthOmics prüft mehrere Availability Zones auf GPU-Kapazität, nicht nur eine einzelne AZ.
-
Automatische Wiederholungsversuche: Wenn eine GPU nicht sofort verfügbar ist, HealthOmics versucht mehrmals, Kapazität abzurufen, sobald sie verfügbar ist.
-
GPU-Aufbewahrung bei allen Aufgaben: Wenn Ihr Workflow sequentielle Aufgaben umfasst, für die eine GPU erforderlich ist, HealthOmics behält die GPU, die Sie bereits haben, für nachfolgende Aufgaben bei, anstatt sie freizugeben und erneut anzufordern. So wird der erfolgreiche Abschluss mehrstufiger GPU-Workflows gewährleistet.
Die folgenden zusätzlichen bewährten Methoden können deine Erfolgsquote beim Laufen weiter verbessern GPU-accelerated Workflows aktiviert HealthOmics:
-
Verwenden Sie Beschleuniger-Pakete, um die Flexibilität zu maximieren
Anstatt einen bestimmten GPU-Instance-Typ anzufordern, verwenden Sie Accelerator-Pakete, die Folgendes ermöglichen HealthOmics um aus mehreren kompatiblen GPU-Generationen auszuwählen (z. B. g4dn, g5, g6). Je mehr GPU-Typen Ihr Workflow akzeptieren kann, desto höher ist die Wahrscheinlichkeit, verfügbare Kapazität zu finden.
Weitere Informationen hierzu finden Sie unter Taskbeschleuniger in einem HealthOmics Workflow-Definition. Beispiel:
-
nvidia-t4-a10g-l4stammt aus den Instance-Familien G4, G5 und G6 -
nvidia-l4-a10gbezieht sich auf G5- und G6-Instanzfamilien
-
-
Erwägen Sie, Ihren Workflow in einem anderen auszuführen AWS Region
Die GPU-Verfügbarkeit variiert je nach AWS Regionen. Wenn deine Anforderungen an den Datenspeicherort dies zulassen, solltest du in Erwägung ziehen, zu rennen GPU-intensive Workflows in einer anderen Region, in der Kapazität möglicherweise leichter verfügbar ist. Weitere Informationen zu den unterstützten Regionen finden Sie unter Servicekontingente und Endpunkte für AWS HealthOmics.
-
Ressourcen-Fallback konfigurieren
Für WDL- und Nextflow-Workflows können Sie das verwenden
omicsResourceFallbackOrderDirektive zur Definition einer geordneten Liste von Ressourcenprofilen (GPU oder CPU) pro Aufgabe. Wenn Ihr bevorzugter Beschleunigertyp nicht verfügbar ist, HealthOmics probiert automatisch den nächsten Beschleunigertyp oder die nächste CPU aus, anstatt auszufallen. Sie können auch angeben, wie lange HealthOmics sollte nach einer GPU suchen. Zu den Anwendungsfällen zählen:-
Fallback von GPU zu GPU — probieren Sie zuerst Ihren bevorzugten Beschleuniger aus und greifen Sie dann auf eine Alternative zurück (versuchen Sie es zum Beispiel
nvidia-l40szuerst, dannnvidia-l4). -
Fallback von GPU zu CPU — füge ein Finale hinzu CPU-only Profil, sodass die Aufgabe abgeschlossen wird, auch wenn keine GPU-Kapazität verfügbar ist.
Wenn keines der Profile in Ihrer Fallback-Reihenfolge innerhalb der Wartezeit über eine Kapazität verfügt, schlägt der Lauf fehl mit
ALL_PROFILES_INSTANCE_RESERVATION_FAILED. Für WDL-Workflows HealthOmics versucht die Aufgabe wegen dieses Fehlers nicht erneut. Für Nextflow-Workflows gilt:errorStrategyundmaxRetriesstellen Sie fest, ob die Aufgabe erneut versucht wird und ein Wiederholungsversuch erneut mit dem ersten Profil beginnt. Erwägen Sie, die Wartezeit für Ressourcen zu verlängern, oder geben Sie alternative Beschleuniger oder eine CPU-Option in Ihrer Ausweichreihenfolge an.Weitere Informationen hierzu finden Sie unter Erweiterte Ressourcenkonfiguration.
-
Hinweise für Läufe, die nicht reagieren
Bei der Entwicklung neuer Workflows können Läufe oder bestimmte Aufgaben „hängen bleiben“ oder „hängen bleiben“, wenn es Probleme mit Ihrem Code gibt und Aufgaben Prozesse nicht ordnungsgemäß beenden. Es kann schwierig sein, dies zu beheben und zu erkennen, da es normal ist, dass Aufgaben über einen längeren Zeitraum ausgeführt werden. Folgen Sie den empfohlenen bewährten Methoden in den folgenden Abschnitten, um zu verhindern und zu erkennen, dass Ausführungen nicht reagieren.
Bewährte Methoden zur Vermeidung nicht reagierender Läufe
-
Stellen Sie sicher, dass Sie alle in Ihrem Taskcode geöffneten Dateien schließen. Das Öffnen zu vieler Dateien kann gelegentlich zu Threading-Problemen in den Workflow-Engines führen.
-
Hintergrundprozesse, die durch eine Workflow-Aufgabe erstellt wurden, sollten beendet werden, wenn die Aufgabe beendet wird. Wenn ein Hintergrundprozess jedoch nicht ordnungsgemäß beendet wird, müssen Sie diesen Prozess in Ihrem Aufgabencode explizit beenden.
-
Stellen Sie sicher, dass Ihre Prozesse nicht in einer Schleife laufen, ohne sie zu beenden. Dies kann dazu führen, dass ein Lauf nicht mehr reagiert und eine Änderung am Code der Workflow-Definition erforderlich ist, um das Problem zu beheben.
-
Sorgen Sie für eine angemessene Speicher- und CPU-Zuweisung für Ihre Aufgaben. Analysieren Sie die CloudWatch aufzeichnen oder benutze die Führen Sie Analyzer aus bei erfolgreich abgeschlossenen Durchläufen Ihres Workflows, um sicherzustellen, dass Sie die optimale Rechenzuweisung haben. Verwenden Sie den Run Analyzer
headroomParameter, der zusätzlichen Spielraum einbezieht und sicherstellt, dass die Prozesse über genügend Ressourcen verfügen, um sie abzuschließen. Rechnen Sie den zugewiesenen Arbeitsspeicher und die CPU mit mindestens 5% Spielraum aus, um die im Hintergrund ablaufenden Betriebssystemprozesse zu berücksichtigen.-
Erhöhen Sie außerdem die Bandbreitengröße der Instance, wenn die Instance einen höheren Durchsatz benötigt. Bei Amazon EC2-Instances mit weniger als 16 vCPUs (Größe 4xl und kleiner) kann es zu Durchsatzspitzen kommen. Weitere Informationen zum Durchsatz von Amazon EC2-Instances finden Sie unter Verfügbare Amazon EC2-Instance-Bandbreite.
-
-
Stellen Sie sicher, dass Sie die richtige Dateisystemgröße für Ihre Läufe verwenden. Bei nicht reagierenden Läufen, die statischen Laufspeicher verwenden, sollten Sie erwägen, die Speicherzuweisung für statische Rechenläufe zu erhöhen, um einen höheren I/O-Durchsatz und eine höhere Speicherkapazität im Dateisystem zu ermöglichen. Analysieren Sie das Run-Manifest, um den maximalen Speicherplatz im Dateisystem zu ermitteln. Verwenden Sie den Run Analyzer, um zu ermitteln, ob die Dateisystemzuweisung erhöht werden muss.
Bewährte Methoden zum Abfangen nicht reagierender Läufe
-
Verwenden Sie bei der Entwicklung neuer Workflows eine Ausführungsgruppe, deren maximale Ausführungszeit festgelegt ist, um außer Kontrolle geratenen Code abzufangen. Wenn eine Ausführung beispielsweise eine Stunde in Anspruch nehmen sollte, ordnen Sie sie einer Ausführungsgruppe zu, die nach 2 oder 3 Stunden (oder je nach Anwendungsfall in einem anderen Zeitraum) das Zeitlimit überschreitet, um außer Kontrolle geratene Jobs abzufangen. Wenden Sie außerdem einen Puffer an, um Abweichungen bei den Verarbeitungszeiten zu berücksichtigen.
-
Richten Sie eine Reihe von Ausführungsgruppen mit unterschiedlichen maximalen Laufzeitlimits ein. Beispielsweise könnten Sie kurze Läufe einer Ausführungsgruppe zuweisen, die die Läufe nach einigen Stunden beendet, und einer Gruppe mit langen Durchläufen, die Läufe nach ein paar Tagen beendet, basierend auf Ihrer erwarteten Workflow-Dauer.
-
HealthOmics hat ein standardmäßiges Service-Limit für die maximale Ausführungsdauer von 604.800 Sekunden oder 7 Tagen, das durch eine Anfrage im Kontingent-Tool angepasst werden kann. Fordern Sie nur dann eine Erhöhung des Servicelimits um dieses Kontingent an, wenn Sie Läufe haben, deren Dauer sich einer Woche nähert. Wenn Sie eine Mischung aus kurzen und langen Läufen haben und keine Run-Gruppen verwenden, sollten Sie erwägen, die Läufe mit langer Laufzeit in einem separaten Konto mit einem höheren Service-Limit für die maximale Laufdauer abzulegen.
-
Untersuchen Sie den CloudWatch aufzeichnen für Aufgaben, von denen Sie vermuten, dass sie nicht reagieren könnten. Wenn eine Aufgabe normalerweise reguläre Protokollanweisungen ausgibt und dies über einen längeren Zeitraum nicht getan wurde, steckt die Aufgabe wahrscheinlich fest oder ist eingefroren.
Was tun, wenn ein Lauf nicht reagiert
-
Brechen Sie den Lauf ab, um zusätzliche Kosten zu vermeiden.
-
Untersuchen Sie das Aufgabenprotokolle um zu überprüfen, ob Prozesse nicht korrekt beendet wurden.
-
Untersuchen Sie das Motorprotokolle um abnormales Motorverhalten zu identifizieren.
-
Vergleichen Sie die Task- und Engine-Protokolle des nicht reagierenden Laufs mit denen identischer, erfolgreich abgeschlossener Läufe. Dies kann helfen, alle Unterschiede zu identifizieren, die möglicherweise dazu geführt haben, dass das Verhalten nicht reagiert.
-
Wenn Sie nicht in der Lage sind, die Ursache zu ermitteln, geben Sie eine Fall unterstützen und beinhalten Folgendes:
-
ARN des hängengebliebenen Laufs und ARN eines identischen Laufs, der erfolgreich abgeschlossen wurde.
-
Engine-Logs (verfügbar, sobald der Lauf abgebrochen wurde oder fehlschlägt)
-
Aufgabenprotokolle für die Aufgabe, die nicht reagiert. Zur Fehlerbehebung benötigen wir keine Aufgabenprotokolle für alle Aufgaben im Workflow.
-