Latenzen durch die Verwendung von Richtlinien für kompakte Platzierung reduzieren

In diesem Dokument wird erläutert, wie Sie die Netzwerklatenz zwischen den VMs eines Jobs durch Angabe einer Richtlinie für kompakte Platzierung reduzieren.

VM-Hosts, die sich in einer Zone physisch näher beieinander befinden, können die Netzwerklatenz zwischen VMs reduzieren. Dieser Leistungsvorteil kann besonders bei Jobs mit eng gekoppelten Aufgaben nützlich sein, z. B. Aufgaben, die über MPI-Bibliotheken kommunizieren. Wenn Sie einen Job erstellen, können Sie optional festlegen, dass die VMs eines Jobs näher beieinander liegen. Dazu geben Sie eine Richtlinie für kompakte Platzierung an. Andernfalls werden VMs bei der Standardplatzierung 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 unter Informationen zu Platzierungsrichtlinien in der Compute Engine-Dokumentation.

Hinweise

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 eine 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 für einen Job keine vorhandene Richtlinie für kompakte Platzierung angeben.
  • 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, auf wie vielen VMs der Job ausgeführt wird.

Job erstellen und ausführen, der eine Platzierungsrichtlinie verwendet

Sie können für einen Job eine Richtlinie für kompakte Platzierung verwenden, indem Sie das Feld collocation mithilfe der gcloud CLI oder der Batch API auf COLLOCATED setzen.

gcloud

  1. Erstellen Sie eine JSON-Datei, die die Konfigurationsdetails des Jobs enthält und das Feld collocation auf COLLOCATED 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"
      }
    }
    
  2. 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, die das Feld collocation auf COLLOCATED setzt.

Wenn Sie beispielsweise einen einfachen Skriptjob 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 ist die Projekt-ID Ihres Projekts.

  • LOCATION: der Standort des Jobs.

  • JOB_NAME: der Name des Jobs.

Nächste Schritte