Allgemeine Tipps zur Verwendung von Compute Engine


Auf dieser Seite erhalten Sie Tipps zu Problemen mit Compute Engine.

Hilfe zur Behebung bestimmter Probleme finden Sie in einem der folgenden Abschnitte:

Verschiedene Antwortformate ansehen

Die meisten Aktionen der Google Cloud CLI werden mit REST API-Aufrufen ausgeführt. Die Ergebnisse in Schöndruck zeigen nur die wichtigsten der von einem bestimmten Befehl zurückgegebenen Informationen. Um die verschiedenen Antwortformate zu sehen, verwenden Sie das Flag --format, das die Antwort in verschiedenen Ausgabeformaten anzeigt, einschließlich json, yaml und text. Wenn Sie beispielsweise eine Liste der Instanzen im JSON-Format sehen möchten, verwenden Sie --format json:

gcloud compute instances list --format json

Logs von gcloud compute ansehen

Die gcloud CLI erstellt und speichert Logs in einer Logdatei unter $HOME/.config/gcloud/logs, die Sie abfragen können. Um sich die neueste Log-Datei unter Linux anzusehen, führen Sie Folgendes aus:

$ less $(find ~/.config/gcloud/logs | sort | tail -n 1)

Die Logdatei enthält Informationen über alle Anfragen und Antworten, die mit dem gcloud CLI-Tool erfolgt sind.

Wenn Sie die von der gcloud CLI erstellten Logdateien automatisch dauerhaft löschen möchten, verwenden Sie das Attribut max_log_days. Damit wird die maximale Aufbewahrungsdauer von Logdateien vor dem Löschen festgelegt. Die Standardeinstellung ist 30 Tage. Wenn Sie diesen Attributwert auf „0“ festlegen, wird die automatische Speicherbereinigung für Logs deaktiviert und Logdateien werden nicht gelöscht.

 gcloud config set core/max_log_days DAYS_TO_RETAIN_LOGS

Deaktivieren Sie das Datei-Logging der gcloud CLI:

Die Datei $HOME/.config/gcloud/logs belegt Speicherplatz im lokalen Dateisystem. Die Menge der generierten Logs kann den Speicherplatz im lokalen Dateisystem überlasten, was zu folgenden Problemen führen kann:

  • Die Speicherauslastung erreicht die Instanz zu 100 %.
  • Die Ausführung von gcloud CLI-Logging-Befehlen schlägt fehl, da kein Speicherplatz mehr vorhanden ist, um eine neue Datei im lokalen Dateisystem zu erstellen.

Wenn Sie das Verhalten der gcloud CLI ändern und das Datei-Logging deaktivieren möchten, verwenden Sie das Attribut disable_file_logging:

 gcloud config set core/disable_file_logging True

Ressourcennamen wählen

Beachten Sie bei der Wahl von Namen für Ihre Ressourcen, dass diese Anzeigenamen auf den Support- und Betriebsdashboards innerhalb von Compute Engine sichtbar sein können. Es empfiehlt sich deshalb, Ressourcennamen zu wählen, die keine vertraulichen Informationen enthalten.

Kommunikation mit dem Internet

Eine Instanz kann nur dann direkten Internetzugriff haben, wenn die beiden folgenden Bedingungen erfüllt sind:

Instanzen können auch indirekt über Cloud NAT oder einen instanzbasierten Proxy auf das Internet zugreifen. Weitere Informationen, u. a. zur Konfiguration von Firewallregeln, finden Sie unter Anforderungen für den Internetzugriff.

Inaktive Verbindungen

Google Cloud-VPC-Netzwerke implementieren ein 10-minütiges Verbindungs-Tracking für IP-Protokolle mit einem Verbindungskonzept (z. B. TCP). Das bedeutet, dass eingehende Pakete, die mit einer festgelegten Verbindung verknüpft sind, zugelassen werden, solange innerhalb der letzten 10 Minuten mindestens ein Paket für die Verbindung gesendet oder empfangen wurde. Wenn mindestens 10 Minuten lang keine Pakete für die Verbindung gesendet oder empfangen wurden, werden die Tracking-Einträge der inaktiven Verbindung entfernt. Nachdem die Tracking-Einträge der Verbindung entfernt wurden, lässt Google Cloud keine weiteren eingehenden Pakete zu, bis mindestens ein neues ausgehendes Paket gesendet wurde. Dieses Verbindungs-Tracking gilt für alle Quellen und Ziele, sowohl für interne als auch für externe IP-Adressen.

So verhindern Sie inaktive Verbindungen:

  • Legen Sie für die TCP-Keep-Alive-Parameter des Betriebssystems einen Zeitraum von weniger als 10 Minuten fest. Dadurch wird innerhalb des Zeitraums mindestens ein Paket gesendet.

  • Bei Anwendungen, die TCP-Verbindungen öffnen, muss die Option SO_KEEPALIVE aktiviert sein.

In den folgenden Beispielen wird gezeigt, wie Sie die TCP-Keep-Alive-Parameter des Betriebssystems mit einem Intervallwert von einer Minute festlegen. Informationen zur Konfiguration der Anwendung für die Verwendung von SO_KEEPALIVE finden Sie in der Dokumentation der Anwendung oder Softwarebibliothek.

Linux


Führen Sie dazu diesen Befehl aus:

$ sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5
Fügen Sie die Einstellungen in der Datei /etc/sysctl.conf hinzu, damit sie nach einem Neustart weiterhin gelten.

Weitere Informationen finden Sie unter Linux TCP Keepalive HOWTO.

macOS


Führen Sie dazu diesen Befehl aus:

$ sudo sysctl -w net.inet.tcp.always_keepalive=1 net.inet.tcp.keepidle=60000 net.inet.tcp.keepinit=60000 net.inet.tcp.keepintvl=60000

Windows


Fügen Sie unter dem Registrierungspfad HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ die folgenden Einstellungen hinzu und verwenden Sie dafür den Datentyp DWORD oder bearbeiten Sie die Werte, wenn die Einstellungen bereits vorhanden sind:

KeepAliveInterval: 1000
KeepAliveTime: 60000
TcpMaxDataRetransmissions: 10

Als ein anderer SSH-Nutzer auf Compute Engine zugreifen

Das gcloud compute-Befehlszeilentool verwendet standardmäßig die Variable $USER, um der Datei /etc/passwd per SSH Nutzer für Verbindungen zu VM-Instanzen hinzuzufügen. Mit dem Flag --ssh-key-file PRIVATE_KEY_FILE kann bei Ausführung des Befehls gcloud compute ssh ein anderer Nutzer angegeben werden. Beispiele:

gcloud compute ssh example-instance --ssh-key-file my-private-key-file

Weitere Informationen finden Sie in der gcloud-Referenzdokumentation.

Mit der seriellen Konsole interagieren

Sie können interaktiven Zugriff auf die serielle Konsole einer Instanz aktivieren, um über die serielle Konsole Verbindungen zu Instanzen herzustellen und Fehler zu beheben.

Unter Interaktion mit der seriellen Konsole finden Sie nähere Informationen hierzu.

Datenpaketfragmentierung bei Instanzen auf der Grundlage von benutzerdefinierten Images vermeiden

In VPC-Netzwerken beträgt die standardmäßige maximale Übertragungseinheit (MTU) für Linux-Images und Windows Server-Images 1460 Byte. Die MTU des Netzwerks kann jedoch geändert werden. Weitere Informationen finden Sie in der VPC-Dokumentation in der Übersicht über die maximale Übertragungseinheit.

Beim Erstellen von Clientanwendungen, die mit Compute Engine-Instanzen über UDP-Sockets kommunizieren, können Sie Fragmentierungen vermeiden, wenn Sie die maximale Größe der UDP-Datagram-Daten auf 28 Byte unter der Netzwerk-MTU festlegen. Wenn die MTU des Netzwerks beispielsweise 1.460 Byte beträgt, können Sie bis zu 1.432 Byte an UDP-Daten pro Paket ohne Fragmentierung senden. Wenn die MTU des Netzwerks 1.500 Byte beträgt, können Sie bis zu 1.472 Byte UDP-Daten ohne Fragmentierung senden. Die 28 Byte werden für einen IPv4-Paketheader (20 Byte) und für einen UDP-Datagram-Header (8 Byte) verwendet. Sie können die MTU des Netzwerks auf maximal 8.896 Byte festlegen.