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 aus. führt er automatisch aus.
Es wird im Detail beschrieben, wie Jobs erstellt und ausgeführt werden. finden Sie in den folgenden Abschnitten:
- Joblebenszyklus: die Statuswerte eines Jobs verstehen von der Erstellung bis zum Löschen.
- Warteschlangen und Planung von Jobs: Informieren Sie sich über die Faktoren, die beeinflussen, wie lange es dauert, bis ein Job ausgeführt wird.
- Jobausführung: Verstehen, wie die Aufgaben eines Jobs auf dessen Ressourcen während der Ausführung.
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:
- 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.
- 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. Bei Bedarf können Sie Jobs abbrechen, (Vorschau), um den Vorgang zu beenden oder zu verhindern, ausgeführt werden kann. Sobald ein Job ausgeführt wird oder abgeschlossen ist, können Sie und analysieren 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.
- 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 von 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 beizubehalten, können Sie die Informationen des Jobs exportieren, bevor er gelöscht wird.
Nachdem Sie einen Job erstellt haben, durchläuft er die folgenden Status:
- 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. - Geplant (
SCHEDULED
): Der Job wurde aus der Warteschlange ausgewählt und die Ressourcen werden zugewiesen. 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:
- Ausstehend (
PENDING
): Die Aufgabe wartet auf die Ausführung einer VM. - Zugewiesen (
ASSIGNED
): Der Aufgabe wurde eine VM zugewiesen, auf der sie ausgeführt werden soll. - Wird ausgeführt (
RUNNING
): Die Aufgabe wird auf einer VM ausgeführt. Eine Aufgabe wird mit einem der folgenden Status beendet:
Erfolgreich (
SUCCEEDED
): Die Aufgabe war erfolgreich, da jede der folgenden Die Runnables haben eine der folgenden Bedingungen erfüllt:- Das Runnable succeeded (zurückgegebene ein Exit-Code Null).
- Die ausführbare Datei fehlgeschlagen (hat einen Exit-Code ungleich null zurückgegeben), war aber ein nicht kritisches ausführbares Objekt (Sie haben die Option aktiviert
des Runnables
ignoreExitStatus
-Feld). - Das Runnable wurde nicht beendet, war aber ein ausführbarer Hintergrund (Sie
das Runnable aktiviert,
background
-Feld).
Fehlgeschlagen (
FAILED
): Die Aufgabe ist fehlgeschlagen und wird nicht mehr ausgeführt aus folgendem Grund: Mindestens ein ausführbares Element hat die oben genannten Bedingungen nicht erfüllt.
- Ausstehend (
Ein Job wird in einem der folgenden Status abgeschlossen:
- Erfolgreich (
SUCCEEDED
): Der Job wurde erfolgreich ausgeführt, weil alle Aufgaben erfolgreich war. - Fehlgeschlagen (
FAILED
): Die Ausführung des Jobs ist fehlgeschlagen und wurde beendet. Grund: mindestens eine seiner Aufgaben ist fehlgeschlagen. - Abgebrochen (
CANCELLED
): Ein Nutzer hat den Job abgebrochen (Vorschau), bevor er erfolgreich war, oder fehlgeschlagen.
- Erfolgreich (
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-Feldpriority
. Sie können die Priorität eines Jobs als Zahl zwischen0
(niedrigste Priorität) und99
(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 sofern die Standardwerte nicht ausreichen. Weitere Informationen finden Sie in der Computing-Ressourcen pro Aufgabe (
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 die
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. 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:
Unter Aufgabenlogs schreiben wird erläutert, wie Sie die Runnables eines Jobs zum Schreiben von Aufgabenlogs konfigurieren. Durch das Schreiben von Aufgabenlogs können Sie benutzerdefinierte Informationen anzeigen lassen in Cloud Logging. Dadurch können Jobs zu analysieren und Fehler zu beheben.
Benutzerdefinierte Statusereignisse konfigurieren wird erläutert, wie Sie benutzerdefinierte Statusereignisse für die Runnables. Mit benutzerdefinierten Statusereignissen können Sie die für Runnables auftreten und erscheinen, Verlauf der Statusereignisse eines Jobs ansehen, was dazu beitragen kann, Jobs einfacher zu analysieren und Fehler zu beheben.
Statusbenachrichtigungen aktivieren wird erläutert, wie Sie einen Job zum Senden von Pub/Sub konfigurieren. Informationen zum Status erhalten, die Sie bei Bedarf und Abfrage in einer BigQuery-Tabelle. Bevor Sie dieses Dokument lesen, konfigurieren Sie Ihr Projekt so, Jobstatus mit Pub/Sub-Benachrichtigungen und BigQuery überwachen .
Ops-Agent-Messwerte aktivieren erklärt, wie Sie einen Job für die automatische Installation des Ops konfigurieren Kundenservicemitarbeiter. Der Ops-Agent erfasst zusätzliche Messwerte zur die Leistung und Auslastung der Ressourcen eines Jobs. Weitere Informationen zum Aufrufen und Verwenden von Ressourcenmesswerten finden Sie Siehe Jobressourcen durch Aufrufen von Messwerten überwachen und optimieren
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, eine regelmäßige Netzwerkkommunikation zwischen VMs erfolgen, 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:
Jobs mit Workflows orchestrieren wird erläutert, wie Sie mithilfe von Workflows in einer Reihenfolge, die Sie mithilfe der Workflows-Syntax.
Unter Jobs mit Nextflow orchestrieren wird erläutert, wie Sie einen Batch-Job über eine Nextflow-Pipeline, die mit denen Sie bioinformatische Workflows orchestrieren können.
Unter Jobs mit dsub orchestrieren wird erläutert, wie Sie einen Batch-Job über eine
dsub
Pipeline, mit der Sie Batchverarbeitungsworkflows orchestrieren können in Google Cloud-Diensten.Batchjobs mit Terraform und Cloud Scheduler erstellen und ausführen wird erläutert, wie Sie Batchjobs in Terraform einbinden. Terraform können Sie Infrastruktur bereitstellen und verwalten, indem Sie die bevorzugte in Konfigurationsdateien gespeichert, die als Code behandelt und in Versionsverwaltungssysteme wie GitHub.
Nächste Schritte
Lernen Sie die Grundlagen der Schaffung von Arbeitsplätzen kennen: