Suggerimenti generali per l'utilizzo di Compute Engine


Questa pagina descrive alcuni suggerimenti che potrebbero esserti utili in caso di problemi con l'utilizzo di Compute Engine.

Per ricevere assistenza per la risoluzione di problemi specifici, consulta una delle seguenti sezioni:

Visualizzare diversi formati di risposta

Google Cloud CLI esegue la maggior parte delle sue azioni effettuando chiamate alle API REST. I risultati con stampa in formato gradevole mostrano solo le informazioni più importanti riportate da un comando specifico. Per visualizzare i diversi formati di risposta, utilizza il flag --format che mostra la risposta in diversi formati di output, tra cui json, yaml e text. Ad esempio, per visualizzare un elenco di istanze in JSON, utilizza --format json:

gcloud compute instances list --format json

Visualizzazione dei log di gcloud compute

La gcloud CLI crea e memorizza i log in un file di log su cui puoi eseguire query, che si trova in $HOME/.config/gcloud/logs. Per visualizzare il file log più recente su un sistema operativo basato su Linux, esegui:

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

Il file di log include informazioni su tutte le richieste e le risposte effettuate utilizzando lo strumento gcloud CLI.

Per eliminare automaticamente i file di log creati dallgcloud CLI, utilizza la proprietà max_log_days, che imposta il numero massimo di giorni in cui conservare i file di log prima dell'eliminazione. L'impostazione predefinita è 30 giorni. Se imposti il valore di questa proprietà su 0, viene disattivata la garbage collection dei log e i file di log non vengono eliminati.

 gcloud config set core/max_log_days DAYS_TO_RETAIN_LOGS

Disattiva la registrazione dei file della gcloud CLI:

Il file $HOME/.config/gcloud/logs occupa spazio sul file system locale. La quantità di log generati potrebbe superare la quantità di spazio sul filesystem locale, causando problemi come:

  • Utilizzo dello spazio che raggiunge il 100% nell'istanza.
  • Impossibile eseguire i comandi di logging gcloud CLI perché non c'è più spazio per creare un nuovo file nel file system locale.

Per modificare il comportamento gcloud CLI e disattivare il logging dei file, utilizza la proprietà disable_file_logging:

 gcloud config set core/disable_file_logging True

Selezione dei nomi delle risorse

Quando selezioni i nomi per le risorse, tieni presente che questi nomi visualizzabili potrebbero essere visibili nelle dashboard di assistenza e operative di Compute Engine. Per questo motivo, consigliamo di utilizzare nomi di risorse che non espongano informazioni sensibili.

Comunicazione con internet

Un'istanza ha accesso diretto a internet solo se si verificano entrambe le seguenti condizioni:

Le istanze possono accedere a internet anche indirettamente, connettendosi tramite Cloud NAT o un proxy basato su istanze. Per ulteriori considerazioni, inclusa la configurazione delle regole firewall, consulta i Requisiti di accesso a internet.

Connessioni inattive

Le reti VPC di Google Cloud implementano il monitoraggio delle connessioni di 10 minuti per i protocolli IP che hanno il concetto di connessione (ad esempio TCP). Ciò significa che i pacchetti in entrata associati a una connessione stabilita sono consentiti purché almeno un pacchetto sia stato inviato o ricevuto per la connessione negli ultimi 10 minuti. Se non sono stati inviati o ricevuti pacchetti per la connessione per almeno 10 minuti, le voci di monitoraggio della connessione inattiva vengono rimosse. Una volta rimosse le voci di monitoraggio della connessione, Google Cloud non consente ulteriori pacchetti in entrata finché non è stato inviato almeno un nuovo pacchetto in uscita. Questo monitoraggio delle connessioni si applica a tutte le origini e le destinazioni, sia agli indirizzi IP interni che esterni .

Per evitare connessioni inattive:

  • Imposta i parametri di keep-alive TCP del sistema operativo su un intervallo di tempo inferiore a 10 minuti. In questo modo, almeno un pacchetto viene inviato entro il periodo di tempo specificato.

  • Assicurati che le applicazioni che aprono connessioni TCP lo facciano con l'opzione SO_KEEPALIVE attivata.

Gli esempi riportati di seguito mostrano come impostare i parametri TCP keep-alive del sistema operativo con un valore di intervallo di un minuto. Consulta la documentazione dell'applicazione o della libreria software per scoprire come configurarla per l'utilizzo di SO_KEEPALIVE.

Linux


Esegui questo comando:

$ sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5
Per assicurarti che le impostazioni rimangano invariate dopo un riavvio, aggiungile al file /etc/sysctl.conf.

Per ulteriori informazioni, consulta la guida HOWTO su TCP Keepalive di Linux.

macOS


Esegui questo comando:

$ 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


Nel percorso del Registro di sistema HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\, aggiungi le seguenti impostazioni utilizzando il tipo di dato DWORD o modifica i valori se le impostazioni esistono già:

KeepAliveInterval: 1000
KeepAliveTime: 60000
TcpMaxDataRetransmissions: 10

Accedere a Compute Engine come utente SSH diverso

Per impostazione predefinita, lo strumento a riga di comando gcloud compute utilizza la variabile $USER per aggiungere utenti al file /etc/passwd per la connessione alle istanze di macchine virtuali tramite SSH. Puoi specificare un utente diverso utilizzando il flag --ssh-key-file PRIVATE_KEY_FILE quando esegui il comando gcloud compute ssh. Ad esempio:

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

Per ulteriori informazioni, consulta la documentazione di riferimento di gcloud.

Interazione con la console seriale

Puoi abilitare l'accesso interattivo alla console seriale di un'istanza in modo da poter collegare e risolvere i problemi delle istanze tramite la console seriale.

Per saperne di più, consulta Interazione con la console seriale.

Evitare la frammentazione dei pacchetti nelle istanze create da immagini personalizzate

La rete VPC ha un'unità massima di trasmissione (MTU) predefinita di 1460 byte per le immagini Linux e Windows Server. Tuttavia, l'MTU della rete può essere modificato. Per maggiori dettagli, consulta la panoramica dell'unità massima di trasmissione nella documentazione VPC.

Quando crei applicazioni client che comunicano con le istanze Compute Engine tramite socket UDP, puoi evitare la frammentazione impostando la dimensione massima dei dati del datagramma UDP su 28 byte in meno rispetto all'MTU di rete. Ad esempio, se l'MTU della rete è 1460 byte, puoi inviare fino a 1432 byte di dati UDP per pacchetto senza frammentazione. Se l'MTU della rete è 1500 byte, puoi inviare fino a 1472 byte di dati UDP senza frammentazione. I 28 byte vengono utilizzati per un'intestazione del pacchetto IPv4 (20 byte) e un'intestazione del datagramma UDP (8 byte). Puoi impostare l'MTU della rete su un massimo di 8896 byte.