Empfehlungen für inaktive VMs anzeigen und anwenden

Compute Engine gibt Empfehlungen zu inaktiven VMs aus, damit Sie VM-Instanzen ermitteln können, die nicht verwendet wurden. Diese Empfehlungen werden automatisch anhand von Systemmesswerten generiert, die in den vergangenen 14 Tagen vom Cloud Monitoring-Dienst erfasst wurden. Anhand der Empfehlungen zu inaktiven VMs können Sie inaktive VM-Instanzen ermitteln und beenden, um die Ressourcennutzung und die Kosten für die Rechenleistung zu reduzieren.

Hinweis

Preise

Empfehlungen für inaktive VMs sind kostenlos verfügbar.

Beschränkungen

Für eigenständige VMs sind in den folgenden Fällen keine Empfehlungen zu inaktiven Instanzen verfügbar:

  • Instanzen mit lokalen SSDs
  • Instanzen mit GPU/TPUs
  • Flexible App Engine-Ressourcen
  • Dataflow-Ressourcen
  • Google Kubernetes Engine-Ressourcen

Empfehlungen für inaktive VM-Instanzen ansehen

Verwenden Sie das gcloud-Tool oder die API, um Empfehlungen zu inaktiven VMs aufzurufen.

gcloud

Verwenden Sie den Befehl gcloud recommender recommendations list mit --recommender=google.compute.instance.IdleResourceRecommender:

gcloud recommender recommendations list \
  --project=PROJECT_ID \
  --location=ZONE \
  --recommender=google.compute.instance.IdleResourceRecommender \
  --format=yaml

Dabei gilt:

  • PROJECT_ID: die Projekt-ID
  • ZONE: die Zone mit den Instanzen, für die Empfehlungen aufgelistet werden sollen

Beispiel:

gcloud recommender recommendations list \
  --project=my-project \
  --location=us-central1-c \
  --recommender=google.compute.instance.IdleResourceRecommender \
  --format=yaml

Wenn am Standort keine inaktiven VMs vorhanden sind, ist die Antwort leer. Andernfalls enthält die Antwort für jede Empfehlung die folgenden Felder:


---
content:
...
operationGroups:
- operations:
  - action: test
    path: /status
    resource: //compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/vm-name
    resourceType: compute.googleapis.com/Instance
    value: RUNNING
  - action: replace
    path: /status
    resource: //compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/vm-name
    resourceType: compute.googleapis.com/Instance
    value: TERMINATED
description: Save cost by stopping Idle VM 'vm-name'.
etag: '"83da314c23f634e1"'
lastRefreshTime: '2020-02-24T07:56:40Z'
name: projects/141732092341/locations/us-central1-c/recommenders/google.compute.instance.IdleResourceRecommender/recommendations/0e061a3a-f921-4216-b1b4-62e16942cd1a
primaryImpact:
category: COST
costProjection:
  cost:
    currencyCode: USD
    nanos: -91533961
    units: '-262'
  duration: 2592000s
recommenderSubtype: STOP_VM
stateInfo:
state: ACTIVE

Weitere Informationen zur Verwendung von Empfehlungen mit gcloud finden Sie unter gcloud-Beispiele.

API

Rufen Sie die Methode recommendations.list auf und verwenden Sie den folgenden Empfehlungstyp:

  • google.compute.instance.IdleResourceRecommender

Der API-Aufruf sieht etwa so aus:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/recommendations

Dabei gilt:

  • PROJECT_ID: die Projekt-ID
  • ZONE: die Zone mit den Instanzen, für die Empfehlungen aufgelistet werden sollen

Wenn Sie die Authentifizierungsvoraussetzungen für das Aufrufen von Google Cloud APIs noch nicht kennen, lesen Sie die Authentifizierungsübersicht.

Im folgenden Bash-Skript-Beispiel wird der Ablauf der Endnutzerauthentifizierung mit Anmeldedaten eines OAuth-Clients verwendet. Das Skript ruft mithilfe des oauth2l-Befehlszeilentools von Google ein OAuth 2.0-Zugriffstoken ab und führt dann mit dem Token eine curl-Anfrage aus.

PROJECT_ID=my-project
ZONE=us-central1-c
RECOMMENDER=google.compute.instance.IdleResourceRecommender
OAUTH_JSON=~/service-account.json
OAUTH_HEADER="$(oauth2l header --json $OAUTH_JSON cloud-platform)"

curl -H "$OAUTH_HEADER" -H "x-goog-user-project: $PROJECT_ID" https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$ZONE/recommenders/$RECOMMENDER/recommendations

Beispiel einer JSON-Antwort für eine Empfehlung zu einer inaktiven VM:

{
 "description" : "Save cost by stopping Idle VM `vm-name`",
 "name": "projects/1574864402/locations/us-central1-c/recommenders/"
         "google.compute.instance.IdleResourceRecommender/"
         "recommendations/0fd31b24-cc05-4132-8431-ed54a22dd4f1",
 "lastRefreshTime": {
   "seconds": 1543912652
 },
 "primaryImpact": {
   "category": COST,
   "costProjection": {
    "cost": {"currencyCode": "USD", "units": -50},
    "duration": { "seconds": 2592000 }
   }
 },
 "stateInfo": ACTIVE,
 "content":
   "groups" : [
    {
      "operations" : [
       {
         "action": "test",
         "resourceType": "compute.googleapis.com/Instance",
         "resource": "//compute.googleapis.com/projects/my-project/"
                     "zones/us-central1-c/instances/vm-name",
         "path": "/status",
         "value": "RUNNING"
       },
       {
         "action": "replace",
         "resourceType": "compute.googleapis.com/Instance",
         "resource": "//compute.googleapis.com/projects/my-project/"
                     "zones/us-central1-c/instances/vm-name",
         "path": "/status",
         "value": "TERMINATED"
       }
      ]
    }
   ]
 },
 "etag" : "cb0e6ac2cfc0b591"
}

Weitere Informationen zu den einzelnen Feldern finden Sie in der Dokumentation zur Recommender API.

Empfehlungen zu inaktiven VMs verstehen

Jede Empfehlung, die Sie über das gcloud-Tool oder die API erhalten, enthält eine Vorgangsgruppe mit Vorgängen, die Sie nacheinander ausführen können, um die Empfehlung anzuwenden. Vorgangsgruppen von Empfehlungen für inaktive VMs umfassen zwei Vorgänge:

  1. Einen Testvorgang zum Prüfen des aktuellen status der VM. Beispiel:

     {
       "action": "test",
       "resourceType": "compute.googleapis.com/Instance",
       "resource" : "//compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/vm-name",
       "path": "/status",
       "value": "RUNNING"
     }
    
  2. Einen Ersetzungsvorgang zum Ändern des status der VM. Beispiel:

     {
       "action": "replace",
       "resourceType": "compute.googleapis.com/Instance",
       "resource" : "//compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/vm-name",
       "path": "/status",
       "value": "TERMINATED"
     }
    

Beim ersten Vorgang (test) wird getestet, ob resource weiterhin RUNNING ist. Prüfen Sie dazu den VM-Status.

Beim zweiten Vorgang (replace) wird der status der Ressource durch den neuen Wert TERMINATED ersetzt. Dies erreichen Sie, indem Sie die VM wie unten beschrieben beenden.

Empfehlungen zu inaktiven VMs anwenden

Wenn Sie eine Empfehlung zu einer inaktiven VM erhalten, die sie nicht mehr benötigen, können Sie die Instanz über die Google Cloud Console, das gcloud-Tool oder die API beenden und optional löschen.

Wenn Sie eine Instanz und deren Laufwerke beenden, aber nicht löschen, zahlen Sie weiterhin für die zugehörigen Laufwerke.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    Zur Seite "VM-Instanzen"

  2. Wählen Sie die Instanz aus, die Sie beenden möchten.
  3. Klicken Sie auf Beenden.

gcloud

Verwenden Sie den Befehl instances stop und geben Sie die VM_NAME an, die Sie beenden möchten.

gcloud compute instances stop VM_NAME --zone=ZONE

Dabei gilt:

  • VM_NAME ist der Name der VM-Instanz, die Sie beenden möchten.
  • ZONE ist die Zone mit der Instanz, die Sie beenden möchten.

API

Stellen Sie in der API eine POST-Anfrage, um die Instanz anzuhalten.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop

Dabei gilt:

  • PROJECT_ID: die Projekt-ID
  • ZONE ist die Zone mit der Instanz, die Sie beenden möchten.
  • VM_NAME ist der Name der VM-Instanz, die Sie beenden möchten.

Wenn Sie sich sicher sind, dass die VM-Instanz und die zugehörigen Laufwerke entfernt werden können, löschen Sie die Instanz.

So werden inaktive VM-Instanzen erkannt

Compute Engine generiert Empfehlungen zu inaktiven VM-Instanzen anhand von Nutzungsmesswerten der letzten 14 Tage oder bei neuen VMs ab 5 Tagen nach der VM-Erstellung. Wenn die CPU- und Netzwerknutzung während des beobachteten Zeitraums gering war, klassifiziert der Recommender die VM als inaktiv.

Damit eine VM als inaktiv klassifiziert wird, müssen alle der folgenden Bedingungen erfüllt sein:

  • Die CPU-Auslastung liegt bei 97 % der VM-Laufzeit unter 0,03 vCPUs.
  • Der empfangene Netzwerktraffic liegt bei 95 % der VM-Laufzeit unter 2.600 Byte pro Sekunde (Bps).
  • Der gesendete Netzwerktraffic liegt bei 95 % der VM-Laufzeit unter 1000 Bps.

Häufigkeit der Empfehlungen

Empfehlungen zu inaktiven VM-Instanzen werden erstmals generiert, nachdem eine VM erstellt und fünf Tage lang ausgeführt wurde. Anschließend werden die Empfehlungen mindestens einmal pro Tag aktualisiert.

Bezug zu Empfehlungen für Maschinentypen

Empfehlungen für Maschinentypen umfassen Empfehlungen zur optimalen Größe für eine VM. Möglicherweise erhalten Sie für den Maschinentyp die Empfehlung, eine inaktive VM zu verkleinern.

Wenn Sie eine inaktive VM trotz geringer Auslastung weiter ausführen müssen, beachten Sie die Empfehlungen für Maschinentypen, um die optimale Größe für nicht ausgelastete VMs auszuwählen.

Nächste Schritte