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âmetropool_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 quemin_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áriasLOAD
- 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.