Configure a partilha de ligações geridas

Esta página descreve como ativar, configurar e monitorizar o Managed Connection Pooling nas suas instâncias do Cloud SQL.

A pool de ligações gerida permite-lhe dimensionar as cargas de trabalho otimizando a utilização de recursos e a latência de ligação para as suas instâncias através da pool. Para ver informações detalhadas sobre a pool de ligações gerida e como a usar para as suas instâncias, consulte a vista geral da pool de ligações gerida.

Antes de começar

  • Confirme se a sua instância cumpre todos os requisitos para usar o agrupamento de ligações gerido.
  • Se estiver a usar a CLI gcloud, confirme que a versão da CLI gcloud é 515.0.0 ou posterior.
  • Confirme que a sua instância está a usar a nova arquitetura de rede do Cloud SQL. Se a sua instância ainda estiver a usar a arquitetura de rede antiga, atualize para a nova arquitetura de rede.

Ative a partilha de ligações gerida

Pode ativar a funcionalidade de pool de ligações gerida para uma instância no momento da criação ou editar uma instância existente para a ativar.

Ative a funcionalidade Managed Connection Pooling para uma nova instância

Para criar uma nova instância com a funcionalidade Managed Connection Pooling ativada, consulte o artigo Criar instâncias. Só pode ativar a agrupamento de ligações gerido para uma nova instância através da CLI gcloud ou da API Cloud SQL.

Ative a funcionalidade Managed Connection Pooling para uma instância existente

Pode ativar o conjunto de ligações gerido para uma instância existente através daGoogle Cloud consola, da CLI gcloud ou da API Cloud SQL. Tem de ativar a funcionalidade Managed Connection Pooling antes de modificar as opções da mesma.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Encontre a instância para a qual quer ativar o agrupamento de ligações gerido. Para abrir a página Vista geral da instância, clique no nome da instância.

  3. Clique em Edit.

  4. Em Personalize a sua instância, expanda Ligações.

  5. Para ativar o conjunto de ligações gerido, selecione a caixa de verificação Ativar conjunto de ligações gerido.

  6. Clique em Guardar.

gcloud

Use o comando gcloud beta sql instances para ativar a pool de ligações gerida.

  gcloud beta sql instances patch INSTANCE_NAME \
  --enable-connection-pooling

Substitua o seguinte:

  • INSTANCE_NAME: o nome da instância do Cloud SQL para a qual quer ativar o agrupamento de ligações gerido.

REST v1

Para ativar a pool de ligações gerida para uma instância existente, use o seguinte comando e defina connectionPoolingEnabled:

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do projeto
  • INSTANCE_ID: o ID da instância

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Corpo JSON do pedido:

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": true
    }
  }
}

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Para ativar a pool de ligações gerida para uma instância existente, use o seguinte comando e defina connectionPoolingEnabled:

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do projeto
  • INSTANCE_ID: o ID da instância

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Corpo JSON do pedido:

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": true
    }
  }
}

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

Para ativar a pool de ligações geridas para uma instância existente, use o seguinte recurso do Terraform:

resource "google_sql_database_instance" "postgres_managed_connection_pooling_enable" {
  name                = "postgres-instance-managed-connection-pooling-enable"
  region              = "us-central1"
  database_version    = "POSTGRES_16"
  deletion_protection = false

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    connection_pool_config {
      connection_pooling_enabled = true # Set to true here
    }
  }
}

Modifique a pool de ligações gerida para uma instância

Depois de ativar a funcionalidade Managed Connection Pooling, pode personalizá-la de acordo com as necessidades da sua instância através de opções de configuração avançadas. Estas opções de configuração são denominadas flags de pool de associações geridas. As configurações adicionadas à funcionalidade Managed Connection Pooling são aplicadas a todos os agrupadores de ligações usados pela instância. Para mais informações sobre as opções de configuração disponíveis, os respetivos valores predefinidos e intervalos, consulte as opções de configuração avançadas.

Para modificar as opções de configuração de agrupamento de ligações geridas disponíveis para uma instância, faça o seguinte:

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Encontre a instância para a qual quer ativar o agrupamento de ligações gerido. Para abrir a página Vista geral da instância, clique no nome da instância.

  3. Clique em Edit.

  4. Em Personalize a sua instância, expanda Ligações.

  5. Em Conjunto de ligações gerido, expanda Opções avançadas de agrupamento.

    Modifique as opções de agrupamento disponíveis que quer atualizar.

  6. Clique em Guardar.

gcloud

Use o comando gcloud beta sql instances para modificar as opções de configuração.

  gcloud beta sql instances patch INSTANCE_NAME \
  --connection-pool-flags=CONFIGURATION_NAME=CONFIGURATION_VALUE

Substitua o seguinte:

  • INSTANCE_NAME: o nome da instância do Cloud SQL para a qual quer modificar o agrupamento de ligações gerido.
  • CONFIGURATION_NAME: o nome da opção de configuração que quer modificar. Para ver uma lista de todas as opções de configuração disponíveis, consulte as opções de configuração avançadas.
  • CONFIGURATION_VALUE: o novo valor da opção de configuração que selecionou.

REST v1

Para modificar as configurações avançadas da funcionalidade Managed Connection Pooling, use o seguinte comando e defina ConnectionPoolConfig:

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do projeto
  • INSTANCE_ID: o ID da instância

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Corpo JSON do pedido:

{
  "settings": {
    "connectionPoolConfig": {
      "flags":
      [
        {
          "name": "CONFIGURATION_NAME",
          "value":"CONFIGURATION_VALUE"
        }
      ]
    }
  }
}

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Para modificar as configurações avançadas da funcionalidade Managed Connection Pooling, use o seguinte comando e defina ConnectionPoolConfig:

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do projeto
  • INSTANCE_ID: o ID da instância

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Corpo JSON do pedido:

{
  "settings": {
    "connectionPoolConfig": {
      "flags":
      [
        {
          "name": "CONFIGURATION_NAME",
          "value":"CONFIGURATION_VALUE"
        }
      ]
    }
  }
}

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

Para modificar as configurações avançadas da gestão de pool de ligações, use o seguinte recurso do Terraform:

resource "google_sql_database_instance" "postgres_managed_connection_pooling_modify" {
  name                = "postgres-instance-managed-connection-pooling-modify"
  region              = "us-central1"
  database_version    = "POSTGRES_16"
  deletion_protection = false

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    connection_pool_config {
      connection_pooling_enabled = true
      flags {
        name  = "max_pool_size" # Modify the value of an existing flag
        value = "10"
      }
    }
  }
}

Desative a partilha de ligações geridas para uma instância

Pode desativar o pool de ligações gerido para uma instância existente através daGoogle Cloud consola, da CLI gcloud ou da API Cloud SQL.

Para desativar a pool de ligações gerida para uma instância, faça o seguinte:

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Encontre a instância para a qual quer desativar a funcionalidade Managed Connection Pooling. Para abrir a página Vista geral da instância, clique no nome da instância.

  3. Clique em Edit.

  4. Em Personalize a sua instância, expanda Ligações.

  5. Para desativar o agrupamento de ligações gerido, desmarque a caixa Ativar agrupamento de ligações gerido.

  6. Clique em Guardar.

gcloud

Use o comando gcloud beta sql instances para desativar a pool de ligações gerida.

  gcloud beta sql instances patch INSTANCE_NAME \
  --no-enable-connection-pooling

Substitua o seguinte:

  • PROJECT_ID: o nome da instância do Cloud SQL para a qual quer desativar o agrupamento de ligações gerido.

REST v1

Para desativar a pool de ligações gerida para uma instância, use o seguinte comando e defina connectionPoolingEnabled:

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do projeto
  • INSTANCE_ID: o ID da instância

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Corpo JSON do pedido:

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": false
    }
  }
}

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Para desativar a pool de ligações gerida para uma instância, use o seguinte comando e defina connectionPoolingEnabled:

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: o ID do projeto
  • INSTANCE_ID: o ID da instância

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Corpo JSON do pedido:

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": false
    }
  }
}

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

Para desativar a pool de ligações gerida para uma instância, use o seguinte recurso do Terraform:

resource "google_sql_database_instance" "postgres_managed_connection_pooling_disable" {
  name                = "postgres-instance-managed-connection-pooling-disable"
  region              = "us-central1"
  database_version    = "POSTGRES_16"
  deletion_protection = false

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    connection_pool_config {
      # Set to false to disable Managed Connection Pooling. You can also remove the block entirely.
      connection_pooling_enabled = false
    }
  }
}

Veja o estado da funcionalidade Managed Connection Pooling para uma instância

Pode ver o estado da funcionalidade Managed Connection Pooling para uma instância através da Google Cloud consola, da CLI gcloud ou da API Cloud SQL.

Para ver o estado do Managed Connection Pooling para uma instância da edição Cloud SQL Enterprise Plus, faça o seguinte:

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Encontre a instância para a qual quer ver o estado do Managed Connection Pooling. Para abrir a página Vista geral da instância, clique no nome da instância.

    A secção Ligações mostra se o agrupamento de ligações geridas está ativado ou desativado.

gcloud

  gcloud beta sql instances describe INSTANCE_NAME
  --format="value(settings.connectionPoolConfig.connectionPoolingEnabled)"

Substitua o seguinte:

  • PROJECT_ID: o nome da instância do Cloud SQL para a qual quer ver o estado do pool de ligações gerido.

    Se a funcionalidade Managed Connection Pooling estiver ativada, é devolvida a seguinte resposta:

    connectionPoolingEnabled: true

REST v1

Para ver o estado da funcionalidade Managed Connection Pooling para a sua instância do Cloud SQL, use o seguinte comando e procure connectionPoolingEnabled:

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

Método HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "POSTGRES_13",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-custom-2-7680",
    "kind": "sql#settings",
    "availabilityType": "REGIONAL",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscEnabled": true
      },
      "ipv4Enabled": false
    },
  ...
  "createTime": "2023-06-14T18:48:34.975Z",
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE",
  "pscServiceAttachmentLink": "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_ID",
  "dnsName": "DNS_NAME"
}

REST v1beta4

Para ver o estado da funcionalidade Managed Connection Pooling para a sua instância do Cloud SQL, use o seguinte comando e procure connectionPoolingEnabled:

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

Método HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "POSTGRES_13",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-custom-2-7680",
    "kind": "sql#settings",
    "availabilityType": "REGIONAL",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscEnabled": true
      },
      "ipv4Enabled": false
    },
  ...
  "createTime": "2023-06-14T18:48:34.975Z",
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE",
  "pscServiceAttachmentLink": "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_ID",
  "dnsName": "DNS_NAME"
}

Monitorize o conjunto de ligações gerido

Pode monitorizar o funcionamento da pool de ligações gerida nas suas instâncias do Cloud SQL através das seguintes métricas da pool de ligações gerida do Cloud SQL:

Nome da métrica Descrição
num_pools O número total de conjuntos de ligações por base de dados.
client_connection Monitoriza a quantidade de associações pelo estado da associação de cliente. Os estados incluídos nesta métrica são:
  • active: o número de ligações ativas por base de dados, incluindo os clientes inativos que não têm pedidos de consulta pendentes.
  • waiting: o número de clientes à espera de uma ligação ao servidor por base de dados.
server_connections Monitoriza a contagem de ligações ao servidor pelo estado da ligação ao servidor. Os estados incluídos nesta métrica são:
  • active: o número de associações ativas por base de dados.
  • waiting: o número de ligações de servidor inativas por base de dados.
client_connections_avg_wait_time O tempo médio gasto por todos os clientes no estado de espera por um servidor.

Para mais informações acerca destas métricas, consulte o artigo Métricas do Cloud SQL. Para ver estas métricas através da consola, consulte o artigo Ver métricas na página de vista geral da instância do Cloud SQL. Google Cloud

O que se segue?