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 reduzieren, indem Sie Es wird eine Richtlinie für kompakte Platzierung angegeben.

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 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 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 unter Platzierungsrichtlinien in der Compute Engine-Dokumentation.

Hinweise

  1. 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.
  2. Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Jobs benötigen:

    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.

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 festlegen, Batch erstellt und löscht automatisch einen 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 erstellen und ausführen, der eine Platzierungsrichtlinie verwendet

Sie können für einen Job die Verwendung einer Richtlinie für kompakte Platzierung festlegen, indem Sie die Feld „collocation mithilfe der gcloud CLI oder Batch API auf COLLOCATED.

gcloud

  1. Erstellen Sie eine JSON-Datei, die die Konfigurationsdetails und -sets des Jobs enthält das Feld collocation auf COLLOCATED.

    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"
      }
    }
    
  2. 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: der Pfad zu einer JSON-Datei mit den Konfigurationsdetails des Jobs.

API

Stellen Sie eine POST-Anfrage an den Methode jobs.create das das Feld collocation auf COLLOCATED setzt.

Wenn Sie beispielsweise einen einfachen Script-Job erstellen möchten, der eine Richtlinie für kompakte Platzierungen 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: den Standort der Stelle.

  • JOB_NAME: Der Name des Jobs.

Nächste Schritte