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:
- Per la procedura di risoluzione dei problemi generali relativi alle istanze, ad esempio se l'istanza non si avvia, consulta la sezione Risoluzione dei problemi generali.
- Per la procedura di risoluzione dei problemi relativi alle istanze Windows, consulta Risoluzione dei problemi relativi alle istanze Windows.
Visualizzazione di diversi formati di risposta
Google Cloud CLI esegue la maggior parte delle sue azioni effettuando chiamate
alle API REST. I risultati con codice formattato mostrano solo le informazioni più importanti
restituite 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 di 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 in maniera definitiva i file di log creati da gcloud CLI,
utilizza la proprietà max_log_days
,
che imposta il numero massimo di giorni per 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 il logging dei file della gcloud CLI:
Il file $HOME/.config/gcloud/logs
occupa spazio sul file system locale.
La quantità di log generati potrebbe superare lo spazio sul file system locale,
causando problemi come:
- Utilizzo dello spazio che raggiunge il 100% nell'istanza.
- Impossibile eseguire i comandi di logging della gcloud CLI perché non c'è più spazio per creare un nuovo file nel file system locale.
Per modificare il comportamento della 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 entrambe le seguenti condizioni sono vere:
- L'istanza ha un indirizzo IP esterno.
- La rete VPC dell'istanza utilizza una route predefinita il cui hop successivo è il gateway internet predefinito.
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 implementano il monitoraggio delle connessioni di 10 minuti per i protocolli IP che hanno il concetto di connessione (ad esempio TCP).Google Cloud 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. Dopo aver rimosso 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
/etc/sysctl.conf
.
Per ulteriori informazioni, consulta la guida di Linux TCP Keepalive.
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 Registry
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
Accesso 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 riferimentogcloud
.
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 scoprire di più, consulta Interazione con la console seriale.
Prevenzione della 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 delle unità massime 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 della 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.