Visão geral do agrupamento de conexões gerenciado

Nesta página, descrevemos o que é o pool de conexões gerenciado e como usá-lo com suas instâncias do Cloud SQL.

O pool de conexões gerenciado permite escalonar os workloads otimizando a utilização de recursos e a latência de conexão das instâncias do Cloud SQL para PostgreSQL usando o pool. O agrupamento de conexões gerenciado atribui dinamicamente conexões do servidor a solicitações recebidas, quando possível. Isso melhora significativamente o desempenho, especialmente para conexões escalonadas, absorvendo picos de conexão de repente e reutilizando as conexões de banco de dados existentes. Em vez de se conectar a um banco de dados específico, o pooling de conexões gerenciado se conecta a um cluster de poolers, que oferecem tempos de conexão mais curtos e escalonabilidade para cargas de trabalho. O número de poolers usados é baseado no número de núcleos de vCPU da instância.

Embora seja possível usar o pool de conexões gerenciado para qualquer carga de trabalho transacional, ele oferece o maior benefício de throughput e latência com aplicativos que contêm conexões de curta duração ou que resultam em um aumento de conexões.

Para conexões de longa duração, o desempenho de conexão usando o pooling de conexões gerenciadas pode ser um pouco menor do que ao usar uma conexão direta. Nesse caso, o pooling de conexões gerenciado oferece escalonamento de conexões quando o número de conexões é muito alto. No entanto, para aplicativos que normalmente estabelecem conexões de longa duração, use conexões diretas para a instância.

Para mais informações sobre como ativar o pool de conexões gerenciadas, consulte Configurar o pool de conexões gerenciadas.

Requisitos

Para usar o pool de conexões gerenciadas, sua instância precisa atender aos seguintes requisitos:

  • Sua instância precisa ser do Cloud SQL Enterprise Plus.
  • Você precisa estar conectado à sua instância usando uma conexão direta ou apenas o proxy de autenticação do Cloud SQL.
  • Você precisa estar conectado à sua instância usando um nome de usuário e uma senha válidos. Não é possível usar o pool de conexões gerenciadas com usuários de grupos do IAM.
  • A instância precisa estar configurada para o Acesso a serviços privados, usar o IP público ou ser uma nova instância com o Private Service Connect ativado.
  • Sua instância precisa usar a nova arquitetura de rede do Cloud SQL.
  • O pool de conexões gerenciado requer um número de versão de manutenção mínimo de POSTGRES_$version.R20250302.00_04. Para mais informações, consulte Manutenção de autoatendimento.

Opções de configuração disponíveis

O pool de conexões gerenciado oferece as seguintes opções de pool que podem ser definidas usando o parâmetro pool_mode:

  • transaction (padrão): agrupa conexões no nível da transação.
  • session: agrupa conexões no nível da sessão.

Também é possível personalizar o agrupamento de conexões gerenciadas usando os seguintes parâmetros de configuração:

  • max_pool_size: o tamanho máximo do pool de conexões. O valor padrão é 50 conexões.
  • min_pool_size: o tamanho mínimo do pool de conexões. Se o número de conexões de servidor for menor que min_pool_size, adicione mais conexões de servidor ao pool. O valor padrão é 0 conexões.
  • max_client_connections: o número máximo de conexões permitidas para sua instância. O valor padrão é 5.000 conexões.
  • client_connection_idle_timeout: o tempo que uma conexão de cliente permanece inativa antes do tempo limite. Esse valor pode variar de 0 a 2.147.483 segundos, e o valor padrão é 0 segundos.
  • server_connection_idle_timeout: o tempo que uma conexão de servidor permanece inativa antes de expirar. Esse valor pode variar de 0 a 2.147.483 segundos, e o valor padrão é 600 segundos.
  • query_wait_timeout: o tempo que uma consulta espera até expirar. Esse valor pode variar de 0 a 2.147.483 segundos, e o valor padrão é 120 segundos.
  • max_prepared_statements: o número máximo de comandos de instruções preparadas nomeadas no nível do protocolo com suporte no modo de agrupamento de transações. O valor padrão é 0.
  • ignore_startup_parameters: os parâmetros que você quer ignorar e que não são rastreados nos pacotes de inicialização do Managed Connection Pooling por padrão.
  • server_lifetime: o tempo máximo que uma conexão de servidor fica sem uso antes de o pool de conexões gerenciadas ser fechado. O valor padrão é de 3.600 segundos.

Limitações

Considere as seguintes limitações ao usar o pool de conexões gerenciado com suas instâncias da edição Cloud SQL Enterprise Plus:

  • Ativar o pool de conexões gerenciadas em uma instância resulta na reinicialização do banco de dados.
  • Quando você usa a API Cloud SQL para ativar, desativar ou configurar o agrupamento de conexões gerenciadas, a API instance.update não pode conter outras atualizações de configuração de instância.
  • O pool de conexões gerenciado só pode ser usado com o proxy do Cloud SQL Auth versão 2.15.2 e mais recentes.
  • Se você estiver usando o conector do Cloud SQL para Go, recomendamos uma versão mínima do Go de 1.24. Se você usar a versão 1.23 ou anterior do Go, poderá ter limitações de desempenho ao usar o pool de conexões gerenciadas.
  • Se você estiver usando o pool de conexões gerenciado no modo de pool transaction, os seguintes recursos do SQL não serão compatíveis:

    • SET/RESET
    • LISTEN
    • WITH HOLD CURSOR
    • PREPARE/DEALLOCATE
    • PRESERVE/DELETE ROW tabelas temporárias
    • LOAD
    • Bloqueios de aviso no nível da sessão
  • Se você estiver usando o Cloud SQL para PostgreSQL versão 17, a opção sslnegotiation=direct não será compatível.

A seguir