Größen-Recommender für VM-Instanzen

Der Größen-Recommender für VM-Instanzen unterstützt Sie beim Optimieren der Ressourcennutzung Ihrer Compute Engine-VM-Instanzen. Diese Empfehlungen werden automatisch basierend auf Systemmesswerten oder Messwerten generiert, die vom Cloud Monitoring-Dienst in den letzten acht Tagen erfasst wurden. Mit diesen Empfehlungen können Sie die Größe Ihrer Instanzmaschinentypen anpassen, um VM-Ressourcen effizienter zu nutzen.

Größenempfehlungen werden auch als Empfehlungen zur Größenanpassung bezeichnet.

Weitere Informationen finden Sie unter Größenempfehlungen für VM-Instanzen anwenden.

Recommender-ID

Die Größen-Recommender-ID für VM-Instanzen lautet:

google.compute.instance.MachineTypeRecommender

Sie verwenden diese ID, wenn Sie Empfehlungen aufrufen und ändern Verwenden Sie gcloud-Befehle oder die REST- und RPC-APIs.

Ort

Für die Recommender-gcloud-Befehle und -APIs müssen Sie einen Standort für Empfehlungen angeben, die Sie ansehen oder ändern möchten. Verwenden Sie für Größenempfehlungen für VM-Instanzen die Compute Engine-Zone als Speicherort in gcloud- und API-Interaktionen.

Berechtigungen

Erforderliche Berechtigung

So rufen Sie Größenempfehlungen für VM-Instanzen auf:

  • recommender.computeInstanceMachineTypeRecommendations.get
  • recommender.computeInstanceMachineTypeRecommendations.list

So ändern Sie die Größenempfehlungen der VM-Instanz:

  • recommender.computeInstanceMachineTypeRecommendations.update

Berechtigungen gewähren

Um diese Berechtigungen zu erteilen, weisen Sie Rollen so zu:

  • Damit nur Empfehlungen angezeigt werden, gewähren Sie die Rolle Compute Recommender-Betrachter (roles/recommender.computeViewer).
  • Damit Empfehlungen aufgerufen und geändert werden können, weisen Sie die Rolle Compute Recommender-Administrator (roles/recommender.computeAdmin) zu.
  • Um die serviceusage.services.use-Berechtigung zu erteilen, weisen Sie die Rolle Service Usage-Nutzer (roles/serviceusage.serviceUsageConsumer) zu.

Alternativ können Sie auch die folgenden einfachen Rollen zuweisen:

  • Damit nur Empfehlungen angezeigt werden, weisen Sie die Rolle Betrachter (roles/viewer) zu.
  • Damit Empfehlungen aufgerufen und geändert werden können, weisen Sie die Rolle Inhaber (roles/owner) oder Bearbeiter (roles/editor) zu.
    • Diese Rollen enthalten auch die Berechtigung serviceusage.services.use.

Empfehlungs-Untertypen

Dieser Recommender unterstützt die folgenden Untertypen:

  • CHANGE_MACHINE_TYPE: Es wird empfohlen, den aktuellen Maschinentyp einer VM-Instanz basierend auf der aktuellen Nutzung zu ändern.

Vorgangsgruppen

Jede Empfehlung, die vom Größen-Recommender für die VM-Instanz generiert wird, hat eine Vorgangsgruppe, die eine Reihe von Aktionen beschreibt, die ausgeführt werden müssen, um die Empfehlung anzuwenden.

Größenempfehlungen für eine eigenständige VM-Instanz

Eine Größenempfehlung für eine eigenständige VM-Instanz enthält einen OperationGroup mit zwei Vorgängen für die Ressource compute.googleapis.com/Instance:

  1. Ein test-Vorgang, um sicherzustellen, dass der aktuelle Maschinentyp mit dem Zeitpunkt der Empfehlung übereinstimmt. Beispiel:

    {
     "action": "test",
     "resourceType": "compute.googleapis.com/Instance",
     "resource" : "//compute.googleapis.com/projects/example-project/zones/z1/instances/vm-name",
     "path": "/machineType",
     "valueMatcher": {
       "matchesPattern": ".*zones/us-central1-f/machineTypes/n1-standard-32"
     }
    }
    
  2. Ein replace-Vorgang, der den Maschinentyp durch den empfohlenen Typ ersetzt Beispiel:

     {
       "action": "replace",
       "resourceType": "compute.googleapis.com/Instance",
       "resource" : "//compute.googleapis.com/projects/example-project/zones/z1/instances/vm-name",
       "path": "/machineType",
       "value": "zones/us-central1-f/machineTypes/n1-standard-4"
     }
    

Beispiele

Das folgende Beispiel zeigt, wie die Größenempfehlungen für VM-Instanzen aufgelistet werden:

  1. Legen Sie die erforderlichen Umgebungsvariablen fest:

    PROJECT=TARGET_PROJECT_ID
    LOCATION=LOCATION_ID
    RECOMMENDER=google.compute.instance.MachineTypeRecommender
    

    wobei

    • TARGET_PROJECT_ID ist das Projekt, dessen Empfehlungen Sie auflisten möchten. Dies kann ein anderes Projekt als Ihr aktuelles Projekt sein.

      • Für gcloud-Befehle müssen Sie die Projekt-ID verwenden
      • Für API-Anfragen können Sie die Projektnummer oder Projekt-ID verwenden. Projektnummer wird empfohlen.

      Die Projektnummer wird in Antworten der API und der gcloud-Befehle zurückgegeben.

    • LOCATION_ID ist der Google Cloud-Standort, an dem sich die Empfehlungen befinden (z. B. us-central1-a).

  2. Listen Sie die Größenempfehlungen für VM-Instanzen auf:

    gcloud

    Passende Sucheingabe

    gcloud recommender recommendations list \
        --project=${PROJECT} \
        --location=${LOCATION} \
        --recommender=${RECOMMENDER} \
        --format=json
    

    REST

    Passende Sucheingabe

    curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
        -H "x-goog-user-project: ${PROJECT}" \
        "https://recommender.googleapis.com/v1/projects/${PROJECT}/locations/${LOCATION}/recommenders/${RECOMMENDER}/recommendations"
    

Die Ausgabe sieht etwa so aus:

[
  {
    "content": {
     "operationGroups": [
        {
          "operations": [
            {
              "action": "test",
              "path": "/machineType",
              "resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-1",
              "resourceType": "compute.googleapis.com/Instance",
              "valueMatcher": {
                "matchesPattern": ".*zones/us-central1-a/machineTypes/n1-standard-4"
              }
            },
            {
              "action": "replace",
              "path": "/machineType",
              "resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-1",
              "resourceType": "compute.googleapis.com/Instance",
              "value": "zones/us-central1-a/machineTypes/custom-2-5120"
            }
          ]
        }
      ]
    },
    "description": "Save cost by changing machine type from n1-standard-4 to custom-2-5120.",
    "etag": "280b34810bba8a1a",
    "lastRefreshTime": "2019-06-28T06:49:21Z",
    "name": "projects/548293842938/locations/us-central1-a/recommenders/google.compute.instance.MachineTypeRecommender/recommendations/a523ff7e-ed03-4143-a3a5-5b396b99cba9",
    "primaryImpact": { ... }
    },
    "stateInfo": {
      "state": "ACTIVE"
    },
    "recommenderSubtype": "CHANGE_MACHINE_TYPE"
  }
]

Unter API verwenden finden Sie eine Anleitung zum Ausführen zusätzlicher Aufgaben zu Empfehlungen mit dem Recommender-gcloud-Befehlen und -APIs.