In diesem Dokument wird erläutert, wie Sie die Netzwerklatenz zwischen den VMs eines Jobs durch Angabe einer Richtlinie für kompakte Platzierung reduzieren können.
Wenn VM-Hosts innerhalb einer Zone physisch näher beieinander sind, kann die Netzwerklatenz zwischen VMs reduziert werden. Dieser Leistungsvorteil kann besonders nützlich für Jobs mit eng gekoppelten Aufgaben sein, wie z. B. Aufgaben, die über MPI-Bibliotheken kommunizieren. Wenn Sie einen Job erstellen, können Sie optional festlegen, dass sich die VMs eines Jobs näher beieinander befinden müssen, indem Sie eine kompakte Platzierungsrichtlinie angeben. 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 kompakten Platzierungsrichtlinien finden Sie in der Compute Engine-Dokumentation unter Informationen zu Platzierungsrichtlinien.
Hinweise
- Wenn Sie Batch noch nie verwendet haben, lesen Sie die Informationen unter Erste Schritte mit Batch. Aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzer erfüllen.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Erstellen eines Jobs benötigen:
-
Batch Job Editor (
roles/batch.jobsEditor
) für das Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) im Dienstkonto des Jobs. Dies ist standardmäßig das Compute Engine-Standarddienstkonto.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
-
Batch Job Editor (
Einschrä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 die Verwendung einer Richtlinie für kompakte Platzierung festlegen, erstellt und löscht Batch automatisch eine Richtlinie für kompakte Platzierung für die VMs des Jobs. Sie können keine vorhandene Richtlinie für kompakte Platzierung für einen Job angeben.
- Sie können für die Richtlinie für kompakte Platzierung keine Anzahl von VMs angeben. Die Richtlinie für kompakte Platzierung für einen Job gilt unabhängig davon, auf wie vielen VMs der Job ausgeführt wird.
Job mit einer Platzierungsrichtlinie erstellen und ausführen
Sie können festlegen, dass für einen Job eine Richtlinie für kompakte Platzierung verwendet wird, indem Sie das Feld collocation
mithilfe der gcloud CLI oder Batch API auf COLLOCATED
setzen.
gcloud
Erstellen Sie eine JSON-Datei, die die Konfigurationsdetails des Jobs angibt und das Feld
collocation
aufCOLLOCATED
setzt.Wenn Sie beispielsweise einen einfachen Skriptjob erstellen möchten, der eine Richtlinie für kompakte Platzierung angibt, 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 für eine JSON-Datei mit den Konfigurationsdetails des Jobs.
API
Stellen Sie eine POST
-Anfrage an die Methode jobs.create
, mit der das Feld collocation
auf COLLOCATED
festgelegt wird.
Wenn Sie beispielsweise einen einfachen Skriptjob erstellen möchten, der eine Richtlinie für kompakte Platzierung angibt, senden 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, lesen Sie die Informationen unter Fehlerbehebung.
- Aufträge und Aufgaben ansehen
- Weitere Informationen zu Joberstellungsoptionen