Joberstellung und -ausführung – Übersicht

In diesem Dokument werden der Ausführungsprozess und die Erstellungsoptionen für Jobs erläutert. Mit Batchjobs können Sie Batchverarbeitungsarbeitslasten Google Cloud Um mehr über die Komponenten eines Jobs und Voraussetzungen für die Verwendung von Batch, siehe Erste Schritte mit Batch

So funktioniert die Erstellung und Ausführung von Jobs

Zur Verwendung von Batch erstellen Sie einen Job, in dem Folgendes angegeben ist: die Arbeitslast und ihre Anforderungen, führt er automatisch aus.

Es wird im Detail beschrieben, wie Jobs erstellt und ausgeführt werden. finden Sie in den folgenden Abschnitten:

Joblebenszyklus

In diesem Abschnitt werden der Lebenszyklus eines Jobs und seine Aufgaben ab Erstellung beschrieben zum Löschen vor.

Für jede Arbeitslast, die Sie in Batch ausführen möchten, folgenden grundlegenden Prozess:

  1. Job erstellen: Sie definieren die Arbeitslast, die Sie ausführen möchten, indem Sie eine die Runnables, Aufgaben und andere Anforderungen. Die Details zu werden in der Optionen zum Erstellen von Jobs in diesem Dokument.
  2. Job überwachen und Fehler beheben: Wenn Sie mit der Erstellung eines Jobs fertig sind, automatisch in die Warteschlange gestellt, geplant und am angegebenen Ressourcen. Sie können die Details eines erstellten Jobs oder einer seiner Aufgaben sehen Sie den aktuellen Status. Nachdem ein Job ausgeführt oder beendet wurde, können Sie auch Überwachen und analysieren Sie den Job mithilfe von Logs. Wenn ein Job fehlschlägt, können Sie mithilfe von Fehlermeldungen, Statusereignissen oder Protokollen, um das Problem zu diagnostizieren bevor Sie den Job neu erstellen.
  3. Job löschen oder exportieren:Die Logs eines Jobs werden automatisch erstellt. entsprechend der Cloud Logging-Aufbewahrungsrichtlinie aufbewahrt und gelöscht werden. Die anderen Informationen eines Jobs bleiben in Batch verfügbar bis sie von Ihnen oder Google Cloud gelöscht werden. Google Cloud löscht einen Job automatisch 60 Tage, nachdem er abgeschlossen ist. Vorher können Sie den Job optional selbst löschen. die Informationen beibehalten, können Sie den Job exportieren, bevor er gelöscht wird.

Nachdem Sie einen Job erstellt haben, durchläuft er die folgenden Status:

  1. In der Warteschlange (QUEUED): Die Jobanfrage wurde zugelassen und steht noch aus in der Warteschlange. Der Job bleibt in der Warteschlange, bis die erforderlichen Ressourcen verfügbar sind und die bevorstehenden Jobs bewertet wurden.
  2. Geplant (SCHEDULED): Der Job wurde aus der Warteschlange ausgewählt und die Ressourcen werden zugewiesen.
  3. Wird ausgeführt (RUNNING): Die Ressourcen für den Job wurden erstellt. und seine Aufgaben können ausgeführt werden.

    Wenn ein Job ausgeführt wird, schreitet jede Aufgabe folgenden Status:

    1. Ausstehend (PENDING): Die Aufgabe wartet auf die Ausführung einer VM.
    2. Zugewiesen (ASSIGNED): Der Aufgabe wurde eine VM zugewiesen, auf der sie ausgeführt werden soll.
    3. Wird ausgeführt (RUNNING): Die Aufgabe wird auf einer VM ausgeführt.
    4. Eine Aufgabe wird mit einem der folgenden Status beendet: <ph type="x-smartling-placeholder">
        </ph>
      • Erfolgreich (SUCCEEDED): Die Aufgabe war erfolgreich, weil jede ihrer runnables entweder erfolgreich (zurückgegebene Exit-Code mit Null) oder wurden mit dem Feld „Exit-Status ignorieren (ignoreExitStatus)“:
      • Fehlgeschlagen (FAILED): Die Aufgabe ist aus folgendem Grund fehlgeschlagen: seiner kritischen Runnables fehlgeschlagen (hat einen Exit-Code ungleich null zurückgegeben).
  4. Ein Job wird in einem der folgenden Status abgeschlossen:

    • Erfolgreich (SUCCEEDED): Alle Aufgaben für den Job wurden erfolgreich war.
    • Fehlgeschlagen (FAILED): Mindestens eine Aufgabe für den Job ist fehlgeschlagen.

Weitere Informationen finden Sie unter Jobstatus und Aufgabenstatus in der Referenzdokumentation.

Warteschlange und Planung von Jobs

Im Allgemeinen ist es wahrscheinlicher, dass Jobs schneller ausgeführt und abgeschlossen werden, wenn sie und erfordern nur wenige gängige Ressourcen. Für die Beispieljobs in der Batch-Dokumentation. Diese sind in der Regel sehr klein. und mit minimalen Ressourcen auskommen, können Sie ein paar Minuten.

Insbesondere kann die Zeit, die ein Job für die Fertigstellung der Warteschlange und Planung benötigt, für unterschiedliche Jobs und zu unterschiedlichen Zeiten. Dabei werden die folgenden Faktoren berücksichtigt:

  • Verfügbarkeit von Jobressourcen: der Verfügbarkeit der erforderlichen Ressourcen des Jobs innerhalb der zulässigen Standorte.

    Erstens kann ein Job nicht ausgeführt werden, wenn Sie Ressourcen angeben, an diesem Standort nicht angeboten werden – in diesem Fall schlägt der Job mit einen Fehler bei der Zonenverfügbarkeit.

    Zweitens ist es wahrscheinlicher, dass ein Job verzögert wird oder fehlschlägt, wenn einer seiner erforderliche Ressourcen im Verhältnis zur aktuellen Nachfrage Fehler bei der Ressourcenverfügbarkeit. Daher wird Ihr Job möglicherweise früher ausgeführt, wenn Sie weniger benötigen, und die Ausführung des Jobs nicht in beliebige Zonen in einer Region.

    Weitere Informationen zu den Ressourcen für einen Job finden Sie unter Jobausführung in in diesem Dokument. Weitere Informationen zu den Standorten, für einen Batch-Job und seine Ressourcen angeben können, finden Sie in der Standorte:

  • Jobpriorität: die Priorität eines Jobs im Verhältnis zu den Prioritäten von andere Jobs in Ihrem Projekt.

    Sie können die Priorität eines Jobs optional angeben, indem Sie den Parameter --priority-Flag für die gcloud CLI oder das JSON-Feld priority. Sie können die Priorität eines Jobs als Zahl zwischen 0 (niedrigste Priorität) und 99 (höchste Priorität). Höherer Wert Priorität kann dazu beitragen, dass ein Job in Ihrem Projekt früher ausgeführt wird als Jobs mit niedrigerer Priorität.

    Wenn Sie die Priorität eines Jobs nicht konfigurieren, wird standardmäßig die Methode mit der niedrigsten Priorität: 0. Wenn zwei Jobs in der Warteschlange dieselbe Priorität haben, die zuerst erstellt wurde, hat die höhere Priorität.

  • Kontingente und Limits: Die Schwellenwerte, die Ihr Projekt hat. für Google Cloud-Ressourcen und -Anfragen.

    Ein Job kann nicht ausgeführt werden, wenn er ein Limit oder das Kontingent Ihres Projekts für eines der folgenden Elemente überschreitet: die erforderlichen Ressourcen oder Anfragen zu erhalten. In diesem Fall Batch kann einen Job verzögern und zu einem späteren Zeitpunkt wiederholen. den Job fehlschlagen und einen zugehörigen Fehler anzeigen.

    Sie können dazu beitragen, Verzögerungen und Fehler für Ihren Job zu vermeiden, indem Sie Jobs erstellen, alle relevanten Grenzwerte einzuhalten und sicherzustellen, dass Ihr Projekt entsprechende Quote. Weitere Informationen finden Sie unter Batchkontingente und -limits.

Jobausführung

Die Ausführungszeit eines Jobs kann je nach Aufgabenplanung variieren. und die Ressourcen des Jobs.

Aufgabenplanung

Wenn ein Job ausgeführt wird, werden seine Aufgaben gemäß den Zeitplanungsrichtlinie (schedulingPolicy), mit dem Sie eine der folgenden Optionen festlegen können:

  • So bald wie möglich (AS_SOON_AS_POSSIBLE) (Standardeinstellung): Aufgaben werden ausgeführt, sobald Ressourcen verfügbar sind, und können parallel ausgeführt werden. Die Anzahl der Aufgaben, die gleichzeitig ausgeführt werden, hängt von den parallelen Aufgaben pro VM ab die von den Ressourcen des Jobs und anderen Konfigurationsoptionen zugelassen werden, wie erläutert in diesem Dokument unter Jobressourcen.
  • In der richtigen Reihenfolge (IN_ORDER): Aufgaben werden nacheinander in erhöhter Reihenfolge ausgeführt. Indexreihenfolge angeben.

Jobressourcen

Jeder Batchjob wird in einer regionalen verwalteten Instanzgruppe (MIG) ausgeführt. eine Gruppe mit einer oder mehreren übereinstimmenden Compute Engine-VM-Instanzen, die sich jeweils in einer der eingeschlossenen Zonen. Jede VM hat dedizierte Hardware für CPU-Kerne (insbesondere virtuelle CPUs (vCPUs)) und Arbeitsspeicher, was sich auf die Leistung Job und ein Bootlaufwerk, auf dem ein System-Image (Betriebssystem-Image) und Anweisungen zum Ausführen des Jobs.

Während der Laufzeit eines Jobs erstellt Batch automatisch und löscht Ressourcen, die Ihren Spezifikationen entsprechen. Wenn Sie einen Job erstellen, konfigurieren Sie seine Ressourcen, indem Sie Folgendes angeben:

  • Sie müssen die Rechenressourcen angeben: vCPUs, Arbeitsspeicher und (falls erforderlich) zusätzlicher Bootlaufwerkspeicher – erforderlich für jede auszuführende Aufgabe es sei denn, die Standardwerte sind ausreichend. Weitere Informationen finden Sie in der Rechenressourcen pro Aufgabe (Feld computeResource) und untergeordnete Felder.

  • Optional können Sie auch die zu verwendenden VM-Typen und zusätzliche Ressourcen für jede VM wie GPUs und Speicher-Volumes. Wenn Sie keine diese Optionen angeben, wählt Batch kompatible Typen VMs erstellt und keine zusätzlichen Ressourcen hinzugefügt. Weitere Informationen finden Sie in der Feld für VM-Instanzressourcen (instances[]) und untergeordnete Felder.

Die Anzahl der VMs und die Anzahl der Aufgaben, die gleichzeitig ausgeführt werden können variieren je nach Aufgabenplanung und Hardware-Anforderungen erfüllt. Wenn Sie festlegen, dass die Tasks eines Jobs ausgeführt werden sollen IN_ORDER hat der Job eine VM und führt jeweils nur eine Aufgabe aus. Andernfalls Wenn die Aufgaben eines Jobs AS_SOON_AS_POSSIBLE ausführen, können Sie Anzahl der VMs und der Anzahl gleichzeitiger Aufgaben anhand der folgenden Formel:

\[{vmsPerJob}=\frac{taskCount}{parallelTasksPerVm}\]

Diese Formel hat folgende Werte:

  • \({vmsPerJob}\): Die maximale Anzahl von VMs für einen Job. Die tatsächliche Anzahl von VMs für einen Job erstellt wurde, möglicherweise kleiner als dieser Wert ist, z. B. wenn Batch erwartet, dass es schneller ist, einen Job mit weniger Ressourcen auszuführen. als auf mehr Ressourcen warten zu müssen. Dieser Wert wird auch durch die Limits für gleichzeitige VMs pro Job.
  • \({taskCount}\): die Gesamtzahl der Aufgaben für den Job, die Sie definieren mithilfe des Felds Aufgabenanzahl (taskCount).
  • \({parallelTasksPerVM}\): die maximale Anzahl von Aufgaben, die auf einer VM ausgeführt werden können gleichzeitig.

    Dieser Wert wird durch Folgendes bestimmt: Kriterien:

    • Der Mindestwert ist 1 Aufgabe.

    • Der Höchstwert ist der kleinere der 20 Aufgaben und, falls definiert, der Wert des Felds Max. Parallele Aufgaben pro Job (parallelism).

    • Wenn die Feld für maximale parallele Tasks pro VM (taskCountPerNode) definiert ist, wird dieser Wert verwendet.

      Ist taskCountPerNode nicht definiert, wird „Batch“ legt einen Wert fest, indem die Gesamtzahl der Rechenressourcen, insbesondere vCPUs, pro VM in der jeweiligen Menge die für jede Aufgabe erforderlich sind:

      \[{parallelTasksPerVm}=\frac{vcpusPerVm}{vcpusPerTask}\]

      Diese Formel hat folgende Werte:

      • \({vcpusPerVm}\): die Gesamtzahl der vCPUs pro VM, also durch den Maschinentyp der VMs Ihres Jobs bestimmt.

      • \({vcpusPerTask}\): die Anzahl der vCPUs pro Aufgabe, die wird durch Umrechnung der Feld „vCPUs pro Aufgabe“ (cpuMilli).

Optionen für die Joberstellung

Unter Grundlegende Jobs erstellen und ausführen wird erläutert, Grundlagen, einschließlich der Definition eines Runnables mithilfe eines Skripts oder und wie Sie vordefinierte und benutzerdefinierte Umgebungsvariablen konfigurieren.

Nachdem Sie die Grundlagen der Schaffung von Arbeitsplätzen verstanden haben, Ein Job, der eine oder mehrere der folgenden zusätzlichen Konfigurationsoptionen verwendet:

  • So steuern Sie den Zugriff für einen Job:

    • Zugriff auf einen Job mit einem benutzerdefinierten Dienstkonto steuern erklärt, wie das Dienstkonto eines Jobs angegeben wird, was sich auf die Ressourcen und Anwendungen, auf die die VMs eines Jobs zugreifen können. Wenn Sie keine ein benutzerdefiniertes Dienstkonto angeben, verwenden Jobs standardmäßig die Standardmäßiges Compute Engine-Dienstkonto

    • Netzwerkübersicht erhalten Sie einen Überblick darüber, wann und wie Sie Netzwerkkonfiguration für einen Job, einschließlich der Angabe der das Netzwerk des Jobs blockieren, externe Verbindungen blockieren und Daten und Ressourcen mithilfe von VPC Service Controls schützen

    • Sensible Daten mit Secret Manager schützen wird erläutert, wie sensible Daten wie benutzerdefinierte Umgebungsvariablen und Anmeldedaten mithilfe von Secret Manager-Secrets zum Angeben verschlüsselter Informationen wenn Sie einen Job erstellen.

  • Konfigurieren Sie zusätzliche Optionen für einen Job:

    • Aufgabenkommunikation mithilfe einer MPI-Bibliothek konfigurieren erklärt, wie ein Job mit voneinander abhängigen Aufgaben, die miteinander kommunizieren, konfiguriert wird über verschiedene VMs über eine Message Passing Interface miteinander kommunizieren MPI-Bibliothek. Ein häufiger Anwendungsfall für MPI ist eng gekoppelt, Hochleistungs-Computing (HPC)

    • Passen Sie die Ressourcen an, auf denen ein Job ausgeführt wird:

      • Jobressourcen mit einer VM-Instanzvorlage definieren wird erläutert, wie Sie eine Compute Engine-VM-Vorlage angeben, um eine Jobressourcen beim Erstellen eines Jobs.

      • Unter GPUs für einen Job verwenden wird die Definition einen Job mit einer oder mehreren Grafikprozessoren (Graphics Processing Units, GPUs) Übliche Verwendung ist eine intensive Datenverarbeitung oder maschinelles Lernen bei Jobs Lernarbeitslasten (ML).

      • Informationen unter Speicher-Volumes für einen Job verwenden wie Sie einen Job definieren, der auf ein oder mehrere externe Speicher-Volumes zugreifen kann. Zu den Speicheroptionen gehören neue oder vorhandene nichtflüchtige Speicher, neue lokale SSDs, Vorhandene Cloud Storage-Buckets und ein vorhandenes Netzwerkdateisystem (NFS) wie eine Filestore-Dateifreigabe.

      • VM-Betriebssystemumgebung – Übersicht erhalten Sie einen Überblick darüber, wann und wie Sie VM-Betriebssystemumgebung (OS) für einen Job, einschließlich der VM-Betriebssystem-Image und Bootlaufwerke.

    • Verschiedene Aspekte eines Jobs optimieren:

      • Überwachung und Analyse verbessern:

      • Wiederholungsversuche für Aufgaben automatisieren wird erläutert, wie Sie die Aufgaben eines Jobs Fehler. Automatisierte Wiederholungsversuche können dazu beitragen, Probleme beheben und die Gesamtlaufzeit ist für Jobs mit temporären Fehlern erforderlich. Verwenden Sie zum Beispiel automatische Wiederholungsversuche für einen Job, der auf Spot-VMs, die erhebliche Rabatte bieten, nicht immer verfügbar und kann jederzeit vorzeitig beendet werden.

      • VMs am selben Ort platzieren, um die Latenz zu verringern wird erläutert, wie Sie die Netzwerklatenz zwischen den VMs eines Jobs reduzieren, indem Sie die VMs müssen physisch nah beieinander sein. Dieser Leistungsvorteil ist besonders nützlich für Jobs, haben eine regelmäßige Netzwerkkommunikation zwischen VMs, z. B. Aufgaben, über MPI-Bibliotheken kommunizieren können.

      • Ressourcenverfügbarkeit mit VM-Reservierungen gewährleisten wird erläutert, wie Sie einen Job konfigurieren, auf reservierten VMs ausgeführt werden kann. Reservierte Mit VMs können Sie die Planungszeit eines Jobs minimieren, Fehler bei der Ressourcenverfügbarkeit vermeiden Kosten optimieren.

      • Bildstreaming verwenden erläutert, wie Sie die Startzeit von Jobs durch Streamingcontainer verbessern Images aus Artifact Registry.

  • Verwenden Sie zusätzliche Dienste, um Jobs zu erstellen und auszuführen:

Nächste Schritte