Como diagnosticar problemas nas instâncias do Cloud SQL

Esta página contém uma lista dos problemas mais frequentes que você encontra ao trabalhar com instâncias do Cloud SQL, bem como as etapas que você pode seguir para resolvê-los. Leia também a página Problemas conhecidos. Consulte a Visão geral do suporte para mais assistência, caso seus problemas não sejam resolvidos.

Visualizar registros

Para informações sobre operações recentes, consulte os registros de operações da instância do Cloud SQL ou os registros de erro do PostgreSQL.

Problemas de conexão

Verifique se o aplicativo está encerrando as conexões corretamente

Se você vir erros que contêm "Aborted connection nnnn to db:", isso geralmente indica que seu aplicativo não está encerrando as conexões corretamente. Ele também pode ser causado por problemas de rede. Esse erro não significa que há problemas com sua instância do Cloud SQL.

Para ver exemplos de práticas recomendadas para o gerenciamento de conexões, consulte Como gerenciar conexões.

Verifique se os certificados expiraram

Se a instância estiver configurada para usar SSL, acesse a página Instâncias do Cloud SQL no Console do GCP e abra a instância. Abra a página Conexões correspondente e verifique se o certificado do servidor é válido. Se ele tiver expirado, você precisará adicionar um novo e fazer a rotação dos certificados. Saiba mais.

Verifique se você está autorizado a se conectar

Caso não esteja conseguindo se conectar, verifique sua autorização:

  • Se você está com problemas para se conectar por meio de um endereço IP, por exemplo, do ambiente local com o cliente psql, confirme se o endereço IP está autorizado a se conectar à instância do Cloud SQL. Veja aqui o endereço IP atual.
  • Use gcloud sql connect para se conectar à instância. Com ele, o endereço IP é autorizado por um curto período de tempo. Você pode executar o comando em um ambiente com o Cloud SDK e o cliente psql instalados. Você também pode executar esse comando no Cloud Shell, que está disponível no Console do Google Cloud Platform com o Cloud SDK e o cliente do psql pré-instalados. O Cloud Shell fornece uma instância do Compute Engine para você se conectar ao Cloud SQL.
  • Permita temporariamente que todos os endereços IP se conectem a uma instância autorizando 0.0.0.0/0, confirmando, com isso, que o seu cliente possa se conectar.

Determinar como as conexões estão sendo iniciadas

Você pode ver informações sobre as conexões atuais executando o comando abaixo:

SELECT * from pg_stat_activity ;

As conexões que mostram um endereço IP, como 1.2.3.4, conectam-se usando IP, já aquelas com cloudsqlproxy~1.2.3.4 usam o Cloud SQL Proxy ou foram originadas do App Engine. As conexões de localhost geralmente são feitas a uma instância de primeira geração do App Engine, embora esse caminho também seja usado por alguns processos internos do Cloud SQL.

Entender os limites de conexão

Não há limite de QPS para instâncias do Cloud SQL. No entanto, há limites específicos em relação à conexão, ao tamanho e ao App Engine. Consulte Cotas e limites.

As conexões do banco de dados consomem recursos no servidor e no aplicativo conectado. Sempre use boas práticas de gerenciamento de conexão para minimizar o espaço ocupado pelo seu aplicativo e reduzir a probabilidade de exceder os limites de conexão do Cloud SQL. Para ver mais informações, consulte Como gerenciar conexões de banco de dados.

Exibir conexões e threads

Para ver os processos em execução no banco de dados, use a tabela pg_stat_activity:

select * from pg_stat_activity;

Conexões do Compute Engine

Se você espera que as conexões entre as instâncias do Compute Engine e do Cloud SQL incluam conexões com inatividade de longa duração, saiba que as conexões com uma instância do Compute Engine expiram após 10 minutos de inatividade. Para mais informações, consulte Rede e firewalls na documentação do Compute Engine.

Para manter ativas as conexões com inatividade de longa duração, configure o TCP keepalive. O valor do TCP keepalive é definido como um minuto pelos comandos a seguir, que tornam a configuração permanente nas reinicializações das instâncias.

# Display the current tcp_keepalive_time value.
cat /proc/sys/net/ipv4/tcp_keepalive_time

# Set tcp_keepalive_time to 60 seconds and make it permanent across reboots.
echo 'net.ipv4.tcp_keepalive_time = 60' | sudo tee -a /etc/sysctl.conf

# Apply the change.
sudo /sbin/sysctl --load=/etc/sysctl.conf

# Display the tcp_keepalive_time value to verify the change was applied.
cat /proc/sys/net/ipv4/tcp_keepalive_time

Tempo limite da conexão

Se um cliente não puder se conectar à instância do Cloud SQL usando um IP particular, verifique se o IP utilizado está no intervalo 172.17.0.0/16. Conexões de qualquer IP dentro do intervalo 172.17.0.0/16 para instâncias do Cloud SQL usando um IP particular falharão. Da mesma forma, as instâncias do Cloud SQL criadas com um IP nesse intervalo serão inacessíveis. Esse intervalo é reservado para a rede de ponte do docker.

Problemas da instância

Espaço em disco

Se a sua instância atinge o máximo permitido de armazenamento, as gravações no banco de dados não são feitas. Se você exclui dados, por exemplo, eliminando uma tabela, o espaço fica livre, mas isso não reflete no Armazenamento usado relatado da instância. Execute o comando VACUUM FULL para recuperar o espaço não usado. Observe que as operações de gravação estarão bloqueadas enquanto o comando vacuum estiver em execução. Saiba mais.

Estado suspenso

Há vários motivos pelos quais o Cloud SQL pode suspender uma instância, inclusive estes:

  • problemas de faturamento

    Por exemplo, se o cartão de crédito da conta de faturamento do projeto tiver expirado, a instância poderá ser suspensa. Verifique as informações de um projeto acessando a página de faturamento no Console do Google Cloud Platform, selecionando o projeto e vendo as informações da conta de faturamento. Depois de resolver o problema de faturamento, a instância retornará ao status executável dentro de algumas horas.

  • problemas jurídicos

    Por exemplo, uma violação da Política de uso aceitável do GCP pode causar a suspensão da instância. Para mais informações, consulte "Suspensões e remoções" nos Termos de Serviço do GCP.

  • problemas operacionais

    Por exemplo, se uma instância ficar presa em um ciclo de falha, ou seja, falhar na inicialização ou assim que for inicializada, o Cloud SQL poderá suspendê-la.

Enquanto uma instância estiver suspensa, você poderá continuar a visualizar informações sobre ela ou excluí-la se a suspensão tiver sido acionada por problemas de cobrança.

Os usuários do Cloud SQL com pacotes de suporte Platinum, Gold ou Silver podem contatar a equipe de suporte diretamente sobre instâncias suspensas. Todos os usuários podem seguir a orientação acima e visitar o fórum google-cloud-sql.

Desempenho

Mantenha um número razoável de esquemas e tabelas de banco de dados

Os recursos do sistema são consumidos por esquemas e tabelas de banco de dados. O desempenho da instância pode ser afetado por um número muito elevado.

Dicas de desempenho geral

Certifique-se de que a instância não esteja restrita em relação à memória ou CPU. Para cargas de trabalho que exigem alto desempenho, a instância precisa ter pelo menos 60 GB de memória.

Para as inserções, atualizações ou exclusões demoradas do banco de dados, verifique os locais do gravador e do banco de dados. O envio de dados de longa distância gera latência.

Para seleções demoradas do banco de dados, considere o seguinte:

  • O cache é extremamente importante para o desempenho da leitura. Verifique as várias proporções de blks_hit / (blks_hit + blks_read) no Coletor de estatísticas do PostgreSQL (em inglês). O ideal é que a relação esteja acima de 99%. Se esse não for o caso, pense na possibilidade de aumentar o tamanho da RAM da instância.
  • Se a carga de trabalho consiste em consultas que usam intensamente a CPU como funções regexes, de classificação e outras complexas, a instância fica limitada. Adicione vCPUs.
  • Verifique o local do leitor e banco de dados. A latência afeta o desempenho de leitura mais do que o desempenho de gravação.
  • Investigue as melhorias de desempenho específicas não relacionadas ao Cloud SQL, como adicionar indexação apropriada, reduzir dados digitalizados e evitar ciclos extras.
Caso você observe baixo desempenho na execução de consultas, use EXPLAIN e identifique em que partes é preciso adicionar índices a tabelas para melhorar o desempenho da consulta. Por exemplo, garanta que todos os campos usados como uma chave JOIN tenham um índice nas duas tabelas.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud SQL para PostgreSQL