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.

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 sql instances para ativar a pool de ligações gerida.

  gcloud 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:

# This example shows creating an instance with Managed Connection Pooling enabled and custom flags set.
resource "google_sql_database_instance" "mysql_managed_connection_pooling_enable" {
  name                = "mysql-instance-managed-connection-pooling-enable"
  region              = "us-central1"
  database_version    = "MYSQL_8_0"
  deletion_protection = false

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

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. 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 sql instances para modificar as opções de configuração.

  gcloud 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:

# This example shows modifying the flags of an existing Managed Connection Pooling configuration.
resource "google_sql_database_instance" "mysql_managed_connection_pooling_modify" {
  name                = "mysql-instance-managed-connection-pooling-modify"
  region              = "us-central1"
  database_version    = "MYSQL_8_0"
  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 or add the name and value of an 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 sql instances para desativar a pool de ligações gerida.

  gcloud 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:

# This example shows disabling Managed Connection Pooling on an existing instance.
resource "google_sql_database_instance" "mysql_managed_connection_pooling_disable" {
  name                = "mysql-instance-managed-connection-pooling-disable"
  region              = "us-central1"
  database_version    = "MYSQL_8_0"
  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 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": "MYSQL_8_0",
  "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": "MYSQL_8_0",
  "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
threads Monitoriza a contagem de threads no conjunto de ligações pelo respetivo estado. Os estados incluídos nesta métrica são:
  • idle: o número de threads inativas no conjunto.
  • active: o número de threads ativas (não inativas) no conjunto.
pending_connection O número de ligações ativas na fila de pooling.
avg_wait_time O tempo médio que o pedido de ligação passou à espera de 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?