Vista geral da gestão de conjuntos de ligações

Esta página descreve o que é a pool de ligações gerida e como a usar para otimizar a gestão de ligações à base de dados para as suas instâncias do Cloud SQL através da pool.

A funcionalidade de pool de ligações gerida permite-lhe dimensionar as suas cargas de trabalho otimizando a utilização de recursos e a latência de ligação para as suas instâncias do Cloud SQL através da funcionalidade de pool. A funcionalidade Managed Connection Pooling atribui dinamicamente ligações de servidor a pedidos recebidos sempre que possível. Isto oferece melhorias significativas no desempenho, especialmente para associações dimensionadas, ao absorver picos de associação súbitos e reutilizar associações de bases de dados existentes. Em vez de se ligar a uma base de dados específica, a funcionalidade Managed Connection Pooling liga-se a um cluster de poolers, que oferece tempos de ligação mais curtos e escalabilidade para as suas cargas de trabalho. O número de poolers usados baseia-se no número de núcleos de vCPU da sua instância.

Embora possa usar a pool de ligações gerida para quaisquer cargas de trabalho transacionais, a pool de ligações gerida oferece o maior benefício de débito e latência com aplicações que contêm ligações de curta duração ou aplicações que resultam num aumento repentino de ligações.

Para ligações de longa duração, o desempenho da ligação com a pool de ligações gerida pode ser ligeiramente inferior ao de uma ligação direta. Neste caso, o Managed Connection Pooling oferece o dimensionamento de ligações quando o número de ligações é muito elevado. No entanto, para aplicações que normalmente estabelecem ligações de longa duração, pode usar ligações diretas à sua instância.

Para mais informações sobre como ativar a funcionalidade Managed Connection Pooling, consulte o artigo Configure a funcionalidade Managed Connection Pooling.

Requisitos

Para usar a funcionalidade de agrupamento de ligações gerido, a sua instância tem de cumprir os seguintes requisitos:

  • A sua instância tem de ser uma instância da edição Cloud SQL Enterprise Plus.
  • Tem de estar ligado à sua instância através de uma ligação direta ou apenas do proxy Auth do Cloud SQL.
  • Tem de ter ligação à sua instância através de um nome de utilizador e uma palavra-passe válidos. Os utilizadores da IAM e do grupo da IAM não são suportados quando usa a funcionalidade de agrupamento de ligações geridas.
  • A sua instância tem de estar configurada para o acesso privado ao serviço, usar o IP público ou ser uma nova instância com o Private Service Connect ativado.
  • A sua instância tem de usar a nova arquitetura de rede do Cloud SQL.
  • A funcionalidade Managed Connection Pooling requer um número de versão de manutenção mínimo de POSTGRES_$version.R20250302.00_04. Para mais informações, consulte o artigo Realize a manutenção self-service.

Portas usadas pela pool de ligações gerida para instâncias do Cloud SQL

Quando ativa a funcionalidade de pool de ligações geridas, as portas usadas pelas instâncias do Cloud SQL para fornecer tráfego da base de dados são alteradas. As portas usadas pela pool de ligações gerida são as seguintes:

  • Porta TCP 5432: usada para ligações diretas pelo servidor de base de dados Postgres. Este é o número da porta predefinido usado quando se liga diretamente através do cliente psql.
  • Porta TCP 6432: usada para ligações diretas pelo pooler de Managed Connection Pooling. Para estabelecer ligação através desta porta, especifique psql -p 6432 quando estabelecer ligação diretamente através do cliente psql.
  • Porta TCP 3307: usada apenas para ligações do proxy Auth do Cloud SQL por um pooler de agrupamento de ligações geridas. Quando usa o proxy Auth do Cloud SQL para se ligar ao pooler de Managed Connection Pooling, este número de porta é configurado com o cliente do proxy Auth do Cloud SQL e não pode ser alterado.

Opções de configuração avançadas

A funcionalidade Managed Connection Pooling oferece as seguintes opções de pooling que pode definir com o parâmetro pool_mode:

  • transaction (predefinição): agrupa as ligações ao nível da transação.
  • session: agrupa as ligações ao nível da sessão.

Também pode personalizar a gestão de pools de ligações usando os seguintes parâmetros de configuração:

  • max_pool_size: o tamanho máximo do conjunto de ligações. O valor predefinido é de 50 ligações.
  • min_pool_size: o tamanho do limite do conjunto de ligações. Se o número de ligações ao servidor for inferior a min_pool_size, adicione mais ligações ao servidor ao conjunto. O valor predefinido é 0 associações.
  • max_client_connections: o número máximo de associações permitidas para a sua instância. O valor predefinido é de 5000 associações.
  • client_connection_idle_timeout: o tempo que uma ligação de cliente permanece inativa antes de atingir o limite de tempo. Este valor pode variar entre 0 e 2 147 483 segundos, e o valor predefinido é 0 segundos.
  • server_connection_idle_timeout: o tempo que uma ligação ao servidor permanece inativa antes de expirar o tempo limite. Este valor pode variar entre 0 e 2 147 483 segundos, e o valor predefinido é 600 segundos.
  • query_wait_timeout: o tempo que uma consulta aguarda até atingir o limite de tempo. Este valor pode variar entre 0 e 2 147 483 segundos, e o valor predefinido é de 120 segundos.
  • max_prepared_statements: o número máximo de comandos de declarações preparadas com nome ao nível do protocolo suportados no modo de agrupamento de transações. O valor predefinido é 0 declarações.
  • ignore_startup_parameters: os parâmetros que quer ignorar e que não são rastreados nos pacotes de arranque da funcionalidade Managed Connection Pooling por predefinição.
  • server_lifetime: o tempo máximo durante o qual uma ligação ao servidor fica sem utilização antes de o Managed Connection Pooling a fechar. O valor predefinido é 3600 segundos.

Limitações

Quando usar o conjunto de ligações gerido com as instâncias da edição Cloud SQL Enterprise Plus, considere as seguintes limitações:

  • A ativação da pool de ligações gerida numa instância existente resulta no reinício da base de dados.
  • Quando usa a API Cloud SQL para ativar, desativar ou configurar o Managed Connection Pooling, a API instance.update não pode conter outras atualizações de configuração da instância.
  • A funcionalidade de pool de ligações gerida só pode ser usada com a versão 2.15.2 e posterior do proxy Auth do Cloud SQL.
  • Se estiver a usar o conector da linguagem Go do Cloud SQL, recomendamos uma versão mínima do Go de 1.24. Se usar a versão 1.23 ou anterior do Go, pode ter limitações no desempenho quando usar o Managed Connection Pooling.
  • Se estiver a usar o Managed Connection Pooling no transactionmodo de pooling, as seguintes funcionalidades de SQL não são suportadas:

    • SET/RESET
    • LISTEN
    • WITH HOLD CURSOR
    • PREPARE/DEALLOCATE
    • PRESERVE/DELETE ROW tabelas temporárias
    • LOAD
    • Bloqueios consultivos ao nível da sessão
  • Se estiver a usar a biblioteca de interface da base de dados asyncpg para o pooler de Managed Connection Pooling na porta 3307 e 6432, tem de atualizar o max_prepared_statements para um valor superior a 0 para ativar o suporte para declarações preparadas no pooler de Managed Connection Pooling.

  • Se estiver a usar o Cloud SQL para PostgreSQL versão 17, a opção sslnegotiation=direct não é suportada.

  • O acompanhamento do IP do cliente não é suportado com a funcionalidade Managed Connection Pooling. Se ativar a opção Armazenar endereços IP dos clientes nas estatísticas de consultas, os endereços IP dos clientes são apresentados como local em vez do endereço IP propriamente dito.

O que se segue?