In diesem Dokument wird erläutert, wie Sie die Netzwerklatenz zwischen den VMs eines Jobs reduzieren, indem Sie Es wird eine Richtlinie für kompakte Platzierung angegeben.
VM-Hosts, die physisch näher beieinander liegen, zone kann die Netzwerklatenz zwischen VMs. Dieser Leistungsvorteil kann besonders nützlich sein, für Jobs mit eng gekoppelten Aufgaben wie Aufgaben, die über MPI-Bibliotheken kommunizieren. Wenn Sie einen Job erstellen, können Sie optional festlegen, dass sich die VMs eines Jobs befinden müssen durch Angabe einer Richtlinie für kompakte Platzierung näher beieinander. Andernfalls verteilt die Standard-VM-Platzierung VMs in der Regel auf separate Hosts, um die Auswirkungen von Stromausfällen zu minimieren.
Weitere Informationen zu Richtlinien für kompakte Platzierung finden Sie unter Platzierungsrichtlinien in der Compute Engine-Dokumentation.
Hinweise
- Wenn Sie Batch zum ersten Mal verwenden, lesen Sie Erste Schritte mit Batch und aktivieren Sie Batch, indem Sie den Voraussetzungen für Projekte und Nutzer.
-
Um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Jobs benötigen, bitten Sie Ihren Administrator, Ihnen folgenden IAM-Rollen:
-
Batch-Job-Editor (
roles/batch.jobsEditor
) für das Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) für das Dienstkonto des Jobs, das standardmäßig das Compute Engine-Standarddienstkonto ist
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
-
Batch-Job-Editor (
Einschränkungen
Zusätzlich zu den allgemeine Einschränkungen für Richtlinien für kompakte Platzierung Für Batch gelten außerdem die folgenden Einschränkungen:
- Wenn Sie für einen Job eine Richtlinie für kompakte Platzierung festlegen, Batch erstellt und löscht automatisch einen Richtlinie für kompakte Platzierung für die VMs des Jobs. Sie können keinen vorhandene Richtlinie für kompakte Platzierung für einen Job.
- Sie können für die Richtlinie für kompakte Platzierung keine Anzahl von VMs angeben. Die Richtlinie für kompakte Platzierung gilt unabhängig davon, wie viele Jobs VMs, auf denen der Job ausgeführt wird.
Job erstellen und ausführen, der eine Platzierungsrichtlinie verwendet
Sie können festlegen, dass für einen Job eine Richtlinie für kompakte Platzierung verwendet wird, indem Sie die
Feld „collocation
“
mithilfe der gcloud CLI oder Batch API auf COLLOCATED
.
gcloud
Erstellen Sie eine JSON-Datei, die die Konfigurationsdetails und -sets des Jobs enthält das Feld
collocation
aufCOLLOCATED
.Um beispielsweise einen einfachen Skriptjob zu erstellen, in dem ein Richtlinie für kompakte Platzierung erstellen Sie eine JSON-Datei mit folgendem Inhalt:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}" } } ] }, "taskCount": 3 } ], "allocationPolicy": { "placement": { "collocation": "COLLOCATED" } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Verwenden Sie zum Erstellen und Ausführen des Jobs die Methode
gcloud batch jobs submit
-Befehl:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Ersetzen Sie Folgendes:
JOB_NAME
: der Name des Jobs.LOCATION
: der Standort des Jobs.JSON_CONFIGURATION_FILE
: Pfad für ein JSON-Objekt mit den Konfigurationsdetails des Jobs.
API
Stellen Sie eine POST
-Anfrage an den
Methode jobs.create
das das Feld collocation
auf COLLOCATED
setzt.
Um beispielsweise einen einfachen Skriptjob zu erstellen, in dem ein an die Richtlinie für kompakte Platzierung:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}"
}
}
]
},
"taskCount": 3
}
],
"allocationPolicy": {
"placement": {
"collocation": "COLLOCATED"
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID Ihres Projekts.LOCATION
: der Standort des Jobs.JOB_NAME
: der Name des Jobs.
Nächste Schritte
- Wenn beim Erstellen oder Ausführen eines Jobs Probleme auftreten, lesen Sie den Abschnitt Fehlerbehebung.
- Aufträge und Aufgaben ansehen
- Weitere Informationen zu Optionen für die Joberstellung