Nesta página, descrevemos o que é o pool de conexões gerenciadas e como usá-lo com suas instâncias do Cloud SQL.
O pool de conexões gerenciadas permite escalonar suas cargas de trabalho otimizando a utilização de recursos e a latência de conexão para suas instâncias do Cloud SQL para PostgreSQL usando o pool. O pooling de conexões gerenciado atribui dinamicamente conexões de servidor a solicitações recebidas quando possível. Isso oferece melhorias significativas de desempenho, especialmente para conexões escalonadas, ao absorver picos repentinos de conexão e reutilizar conexões de banco de dados atuais. Em vez de se conectar a um banco de dados específico, o pooling de conexões gerenciadas se conecta a um cluster de poolers, que oferecem tempos de conexão mais curtos e escalonabilidade para suas cargas de trabalho. O número de poolers usados se baseia 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 melhor benefício de capacidade e latência com aplicativos que contêm conexões de curta duração ou que resultam em um aumento repentino de conexões.
Para conexões de longa duração, o desempenho da 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, é possível usar conexões diretas com a instância.
Para mais informações sobre como ativar o pool de conexões gerenciado, consulte Configurar o pool de conexões gerenciado.
Requisitos
Para usar o pool de conexões gerenciado, sua instância precisa atender aos seguintes requisitos:
- Sua instância precisa ser da edição Cloud SQL Enterprise Plus.
- Você precisa estar conectado à instância usando uma conexão direta ou apenas o proxy de autenticação do Cloud SQL.
- Você precisa estar conectado à instância usando um nome de usuário e uma senha válidos. Usuários do IAM e de grupos do IAM não são compatíveis com o uso do pool de conexões gerenciadas.
- A instância precisa estar configurada para acesso a serviços particulares, usar 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 pooling de conexões gerenciado requer um número de versão de manutenção mínima de
POSTGRES_$version.R20250302.00_04
. Para mais informações, consulte Manutenção de autoatendimento.
Portas usadas pelo pool de conexões gerenciadas para instâncias do Cloud SQL
Quando você ativa o pool de conexões gerenciadas, as portas usadas pelas instâncias do Cloud SQL para veicular o tráfego do banco de dados mudam. As portas usadas pelo pool de conexões gerenciadas são as seguintes:
- Porta TCP 5432: usada para conexões diretas pelo servidor de banco de dados do Postgres. Esse é o número de porta padrão usado ao se conectar diretamente usando o cliente psql.
- Porta TCP 6432: usada para conexões diretas pelo servidor PgBouncer. Para se conectar usando essa porta, especifique
psql -p 6432
ao se conectar diretamente usando o cliente psql. - Porta TCP 3307: usada apenas para conexões do proxy de autenticação do Cloud SQL por um servidor PgBouncer. Quando você usa o proxy de autenticação do Cloud SQL para se conectar ao Pgbouncer, esse número de porta é configurado com o cliente do proxy de autenticação do Cloud SQL e não pode ser alterado.
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.
Você também pode personalizar o pool 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 do limite do pool de conexões. Se o número de conexões de servidor for menor quemin_pool_size
, adicione mais conexões 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 é de 5.000 conexões.client_connection_idle_timeout
: o tempo que uma conexão de cliente permanece inativa antes de expirar. 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 atingir o tempo limite. Esse valor pode variar de 0 a 2.147.483 segundos, e o valor padrão é de 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 é de 120 segundos.max_prepared_statements
: o número máximo de comandos de instruções preparadas nomeadas no nível do protocolo compatíveis com o modo de pool 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 fechar. 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 gerenciado em uma instância atual resulta em uma reinicialização do banco de dados.
- Quando você usa a API Cloud SQL para ativar, desativar ou configurar
o pool 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 de autenticação do Cloud SQL versão 2.15.2 e mais recentes.
- Se você estiver usando o conector de linguagem Go do Cloud SQL, recomendamos
uma versão mínima do Go de
1.24
. Se você usa o Go versão 1.23 ou anterior, pode haver limitações de performance ao usar o pool de conexões gerenciadas. Se você estiver usando o pool de conexões gerenciadas 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 consultivos 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.