Esta página apresenta dicas que podem ser úteis se você encontrar problemas ao usar o Compute Engine.
Para ajuda na solução de problemas específicos, consulte uma das seguintes seções:
- Para etapas de solução de problemas gerais com instâncias, como se a instância não iniciar, consulte Resolver problemas de criação, atualização e exclusão de VMs.
- Para saber mais sobre as etapas de solução de problemas com instâncias do Windows, consulte Como solucionar problemas de instâncias do Windows.
Ver diferentes formatos de resposta
A CLI do Google Cloud realiza a maioria das ações fazendo chamadas da
API REST. Os resultados com estilo de formatação mostram somente as informações mais importantes retornadas por um comando específico. Para ver os diferentes formatos de resposta,
use a sinalização --format que exibe a resposta em diferentes formatos de saída,
incluindo json, yaml e text. Por exemplo, para ver uma lista de instâncias em
JSON, use --format json:
gcloud compute instances list --format json
Ver registros do gcloud compute
A CLI gcloud cria e armazena registros em um arquivo de registro que você
pode consultar, localizado em $HOME/.config/gcloud/logs. Para ver o arquivo de registro mais recente em um sistema operacional baseado em Linux, execute:
$ less $(find ~/.config/gcloud/logs | sort | tail -n 1)
O arquivo de registro inclui informações sobre todas as solicitações e respostas feitas usando o gcloud CLI ferramenta.
Para excluir permanentemente os arquivos de registro criados pela CLI gcloud,
use a propriedade max_log_days,
que define o número máximo de dias para reter arquivos de registro antes da exclusão.
A configuração padrão é de 30 dias. Se você definir esse valor de propriedade como 0, a coleta de lixo de registro
será desativada e os arquivos de registro não serão excluídos.
gcloud config set core/max_log_days DAYS_TO_RETAIN_LOGS
Desative a geração de registros de arquivos da CLI gcloud:
O arquivo $HOME/.config/gcloud/logs consome espaço no sistema de arquivos local.
A quantidade de registros gerados pode sobrecarregar a quantidade de espaço no sistema de arquivos
local, o que pode causar problemas como os seguintes:
- Uso do espaço que chega a 100% na instância.
- Falha ao executar os comandos de geração de registros da CLI gcloud porque não há espaço disponível para criar um arquivo no sistema de arquivos local.
Para alterar o comportamento da CLI gcloud e desativar a geração de registros
de arquivos, use a propriedade
disable_file_logging:
gcloud config set core/disable_file_logging True
Selecionar nomes de recurso
Ao selecionar os nomes para os seus recursos, lembre-se de que eles aparecem nos painéis de suporte e operacionais do Google Compute Engine. Por isso, é recomendável que os nomes de recursos não exponham informações sensíveis.
Como se comunicar com a Internet
Uma instância tem acesso direto à Internet somente se as duas condições a seguir forem verdadeiras:
- A instância tem um endereço IP externo.
- A rede VPC da instância usa uma rota padrão em que o próximo salto é o gateway de Internet padrão.
As instâncias também podem acessar a Internet indiretamente com a conexão pelo Cloud NAT ou por um proxy com base em instância. Para mais considerações, incluindo a configuração da regra de firewall, consulte Requisitos de acesso à Internet.
Conexões inativas
Google Cloud os componentes de rede não mantêm conexões ociosas abertas indefinidamente. Para evitar conexões descartadas, considere como os seguintes componentes lidam com conexões inativas:
As entradas da tabela de rastreamento de conexão do Cloud Next Generation Firewall são removidas depois que um fluxo fica inativo por 10 minutos.
O Cloud NAT tem configurações de tempo limite que se aplicam a conexões inativas para TCP, UDP e ICMP. Os tempos limite do TCP incluem o tempo limite de inatividade da conexão estabelecida TCP, o tempo limite de inatividade da conexão transitória TCP e o tempo limite de
TIME_WAITdo TCP.Os balanceadores de carga de rede de passagem rastreiam as conexões usando as próprias regras. Para mais informações, consulte Distribuição de tráfego para balanceadores de carga de rede de passagem interna e Distribuição de tráfego para balanceadores de carga de rede de passagem externa regional.
Para evitar que conexões TCP inativas sejam descartadas, configure o TCP keepalive, que mantém as conexões ativas enviando pacotes periódicos (sondas) para redefinir os tempos limite de inatividade:
Verifique se os aplicativos cliente ou servidor criam sockets com a opção
SO_KEEPALIVE. Consulte a documentação da biblioteca de software ou do aplicativo para determinar como abrir sockets com a opçãoSO_KEEPALIVE.Configure os seguintes parâmetros de sinal de atividade TCP:
O período de inatividade, que representa o tempo que precisa decorrer entre o último pacote não keepalive e a primeira sondagem keepalive em uma sequência.
O intervalo de sinal de atividade, que representa o tempo entre cada sondagem de sinal de atividade TCP.
As sondagens de manutenção de atividade, que representam o número total de sondagens de manutenção de atividade TCP não confirmadas enviadas em uma sequência antes que a conexão seja considerada interrompida.
Os aplicativos cliente ou servidor podem definir os parâmetros de keepalive do TCP usando
opções de soquete, como TCP_KEEPIDLE, TCP_KEEPINTVL e TCP_KEEPCNT, ou
é possível definir os parâmetros de keepalive do TCP para seu sistema operacional.
Os exemplos a seguir mostram como definir um período de inatividade de 60 segundos para seu sistema operacional:
Linux
Execute este comando:
$ sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5Para garantir que as configurações permaneçam vigentes após uma reinicialização, adicione as configurações ao seu arquivo /etc/sysctl.conf. Esses parâmetros do kernel se aplicam ao IPv4 e ao IPv6, mesmo que tenham ipv4 nos nomes.
Consulte Linux TCP Keepalive HOWTO para mais informações.
macOS
Execute este 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
No caminho do registro
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\,
adicione as seguintes configurações usando o tipo de dados
DWORD
ou edite os valores se as configurações já existirem:
KeepAliveInterval: 1000 KeepAliveTime: 60000 TcpMaxDataRetransmissions: 10
Como acessar o Compute Engine com um usuário SSH diferente
Por padrão, a ferramenta de linha de comando gcloud compute usa a variável $USER para
adicionar usuários ao arquivo /etc/passwd para se conectar a instâncias
usando SSH. Você pode especificar um usuário diferente usando a sinalização --ssh-key-file PRIVATE_KEY_FILE ao executar o comando gcloud compute ssh. Exemplo:
gcloud compute ssh example-instance --ssh-key-file my-private-key-file
Para mais informações, consulte a documentação de referência do gcloud.
Como interagir com o console serial
Ative o acesso interativo a um console serial de instância para se conectar e resolver problemas de instâncias por meio do console.
Para mais informações, consulte Solução de problemas usando o console serial.
Evitar fragmentação de pacote de instâncias criadas a partir de imagens personalizadas
A rede VPC tem uma unidade padrão de transmissão máxima (MTU, na sigla em inglês)
de 1460 bytes para imagens do Linux e do Windows Server. No entanto, a
MTU da rede pode ser alterada. Para mais detalhes, consulte a
visão geral da unidade de transmissão máxima na documentação
da VPC.
Ao criar aplicativos cliente que se comunicam com instâncias do Compute Engine por soquetes UDP, será possível evitar a fragmentação se você definir o tamanho máximo dos dados do datagrama UDP para 28 bytes a menos que a MTU da rede. Por exemplo, se a MTU da rede for de 1.460 bytes, será possível enviar até 1.432 bytes de dados UDP por pacote sem fragmentação. Se a MTU da rede for de 1.500 bytes, será possível enviar até 1.472 bytes de dados UDP sem fragmentação. Os 28 bytes são usados em um cabeçalho de pacote IPv4 (20 bytes) e em um cabeçalho de datagrama UDP (8 bytes). Você pode definir a MTU da rede com um máximo de 8896 bytes.
Diagnóstico de performance e CPU
Picos de latência inesperados ou falhas no seu aplicativo em plataformas de CPU modernas podem indicar bloqueios de barramento da CPU. Esses problemas ocorrem quando operações atômicas são realizadas em memória desalinhada.
Para identificar o problema, analise a saída da porta serial em busca da seguinte entrada de registro: x86/split lock detection: #DB: <process_name>/<pid> took a bus_lock trap
at address: 0x<address>.
A saída do console serial permite a detecção de eventos no nível do hardware, como interceptações de bloqueio do barramento da CPU, que indicam operações de memória desalinhadas que podem degradar o desempenho do sistema.
Para mais informações, consulte Resolver problemas de bloqueios de barramento da CPU.