In diesem Dokument wird beschrieben, wie Sie die Netzwerklatenz zwischen den VMs eines Jobs reduzieren, indem Sie eine Richtlinie für kompakte Platzierung angeben.
Wenn sich VM-Hosts innerhalb einer Zone physisch näher beieinander befinden, kann die Netzwerklatenz zwischen VMs reduziert werden. Dieser Leistungsvorteil kann besonders nützlich für Jobs mit eng gekoppelten Aufgaben sein, z. B. Aufgaben, die über MPI-Bibliotheken kommunizieren. Wenn Sie einen Job erstellen, können Sie optional eine Richtlinie für kompakte Platzierung angeben, um die VMs des Jobs näher zueinander zu platzieren. Andernfalls werden VMs bei der Standard-VM-Platzierung in der Regel auf separate Hosts verteilt, um die Auswirkungen von Stromausfällen zu minimieren.
Weitere Informationen zu Richtlinien für kompakte Platzierung finden Sie in der Compute Engine-Dokumentation unter Richtlinien für die Platzierung.
Hinweise
- Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Abschnitt Erste Schritte mit Batch und aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzer erfüllen.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Jobs benötigen:
-
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 auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
-
Batch-Job-Editor (
Beschränkungen
Zusätzlich zu den allgemeinen Einschränkungen für Richtlinien für kompakte Platzierung gelten für Batch die folgenden Einschränkungen:
- Wenn Sie für einen Job eine Richtlinie für kompakte Platzierung angeben, wird von Batch automatisch eine Richtlinie für kompakte Platzierung für die VMs des Jobs erstellt und gelöscht. Sie können für einen Job keine vorhandene Richtlinie für kompakte Platzierung angeben.
- Sie können keine Anzahl von VMs für die Richtlinie für kompakte Platzierung angeben. Die Richtlinie für die kompakte Platzierung für einen Job gilt unabhängig davon, auf wie vielen VMs 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 das Feld collocation
COLLOCATED
mit der gcloud CLI oder der Batch API festlegen.
gcloud
Erstellen Sie eine JSON-Datei, in der die Konfigurationsdetails des Jobs angegeben und das Feld
collocation
aufCOLLOCATED
festgelegt wird.Wenn Sie beispielsweise einen einfachen Script-Job erstellen möchten, in dem eine kompakte Platzierungsrichtlinie angegeben wird, 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 den Befehl
gcloud batch jobs submit
, um den Job zu erstellen und auszuführen: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
: der Pfad zu einer JSON-Datei mit den Konfigurationsdetails des Jobs.
API
Stellen Sie eine POST
-Anfrage an die Methode jobs.create
, in der das Feld collocation
auf COLLOCATED
festgelegt wird.
Wenn Sie beispielsweise einen einfachen Scriptjob erstellen möchten, der eine Richtlinie für kompakte Platzierung angibt, stellen Sie die folgende Anfrage:
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 Probleme beim Erstellen oder Ausführen eines Jobs auftreten, finden Sie weitere Informationen unter Fehlerbehebung.
- Jobs und Aufgaben ansehen
- Weitere Optionen zum Erstellen von Jobs