Configurare il pool di connessioni gestito

Questa pagina descrive come configurare il pool di connessioni gestito per le istanze Cloud SQL.

Prima di iniziare

  • Verifica che la tua istanza soddisfi tutti i requisiti per utilizzare il pool di connessioni gestite.
  • Se utilizzi gcloud CLI, utilizza il comando gcloud beta e verifica che la versione di gcloud CLI sia 515.0.0 o successiva.

Puoi attivare il pool di connessioni gestito per un'istanza al momento della creazione oppure modificare un'istanza esistente per attivarlo.

Abilitare il pool di connessioni gestito per una nuova istanza

Per creare un'istanza con il pool di connessioni gestito abilitato, consulta Crea istanze. Puoi abilitare il pool di connessioni gestito per un'istanza utilizzando gcloud CLI o l'API Cloud SQL.

Abilitare il pool di connessioni gestito per un'istanza esistente

Puoi attivare il pool di connessioni gestito per un'istanza esistente utilizzando la consoleGoogle Cloud , gcloud CLI o l'API Cloud SQL. Devi attivare il pool di connessioni gestito prima di modificare le opzioni.

Console

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Trova l'istanza per cui vuoi abilitare il pool di connessioni gestito. Per aprire la pagina Panoramica dell'istanza, fai clic sul nome dell'istanza.

  3. Fai clic su Modifica.

  4. In Personalizza la tua istanza, espandi Connessioni.

  5. Per attivare il pool di connessioni gestito, seleziona la casella Abilita pool di connessioni gestito.

  6. Fai clic su Salva.

gcloud

Utilizza il comando gcloud beta sql instances per abilitare il pool di connessioni gestito.

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

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza Cloud SQL per cui vuoi attivare il pool di connessioni gestito.

REST v1

Per attivare il pool di connessioni gestito per un'istanza esistente, utilizza il seguente comando e imposta connectionPoolingEnabled:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto
  • INSTANCE_ID: l'ID istanza

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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

Per attivare il pool di connessioni gestito per un'istanza esistente, utilizza il seguente comando e imposta connectionPoolingEnabled:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto
  • INSTANCE_ID: l'ID istanza

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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

Per abilitare il pool di connessioni gestito per un'istanza esistente, utilizza la seguente risorsa 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
    }
  }
}

Modifica il pool di connessioni gestito per un'istanza

Dopo aver abilitato il pool di connessioni gestito, puoi personalizzarlo utilizzando le opzioni di configurazione disponibili. Queste opzioni di configurazione sono chiamate flag del pool di Managed Connection Pooling. Le configurazioni aggiunte al pool di connessioni gestito vengono applicate a tutti i pooler utilizzati dall'istanza. Per ulteriori informazioni sulle opzioni di configurazione disponibili, sui relativi valori predefiniti e intervalli, consulta Opzioni di configurazione disponibili.

Per modificare le opzioni di configurazione del pool di connessioni gestito disponibili per un'istanza:

Console

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Trova l'istanza per cui vuoi abilitare il pool di connessioni gestito. Per aprire la pagina Panoramica dell'istanza, fai clic sul nome dell'istanza.

  3. Fai clic su Modifica.

  4. In Personalizza la tua istanza, espandi Connessioni.

  5. Nella sezione Pool di connessioni gestito, espandi Opzioni avanzate di pooling.

    Modifica le opzioni di raggruppamento disponibili che vuoi aggiornare.

  6. Fai clic su Salva.

gcloud

Utilizza il comando gcloud beta sql instances per modificare le opzioni di configurazione.

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

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza Cloud SQL per cui vuoi modificare il pool di connessioni gestito.
  • CONFIGURATION_NAME: il nome dell'opzione di configurazione che vuoi modificare. Per un elenco di tutte le opzioni di configurazione disponibili, consulta Opzioni di configurazione disponibili.
  • CONFIGURATION_VALUE: il nuovo valore per l'opzione di configurazione che hai selezionato.

REST v1

Per modificare le configurazioni disponibili del pool di connessioni gestite, utilizza il seguente comando e imposta ConnectionPoolConfig:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto
  • INSTANCE_ID: l'ID istanza

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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

Per modificare le configurazioni disponibili del pool di connessioni gestite, utilizza il seguente comando e imposta ConnectionPoolConfig:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto
  • INSTANCE_ID: l'ID istanza

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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

Per modificare le configurazioni disponibili del pool di connessioni gestito, utilizza la seguente risorsa 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"
      }
    }
  }
}

Disabilitare il pool di connessioni gestito per un'istanza

Puoi disattivare il pool di connessioni gestito per un'istanza esistente utilizzando la consoleGoogle Cloud , gcloud CLI o l'API Cloud SQL.

Per disabilitare il pool di connessioni gestito per un'istanza:

Console

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Trova l'istanza per cui vuoi disattivare il pool di connessioni gestito. Per aprire la pagina Panoramica dell'istanza, fai clic sul nome dell'istanza.

  3. Fai clic su Modifica.

  4. In Personalizza la tua istanza, espandi Connessioni.

  5. Per disattivare il pool di connessioni gestito, deseleziona la casella Abilita pool di connessioni gestito.

  6. Fai clic su Salva.

gcloud

Utilizza il comando gcloud beta sql instances per disabilitare il pool di connessioni gestito.

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

Sostituisci quanto segue:

  • PROJECT_ID: il nome dell'istanza Cloud SQL per cui vuoi disattivare il pool di connessioni gestito.

REST v1

Per disattivare il pool di connessioni gestito per un'istanza, utilizza il seguente comando e imposta connectionPoolingEnabled:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto
  • INSTANCE_ID: l'ID istanza

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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

Per disattivare il pool di connessioni gestito per un'istanza, utilizza il seguente comando e imposta connectionPoolingEnabled:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto
  • INSTANCE_ID: l'ID istanza

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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

Per disattivare il pool di connessioni gestito per un'istanza, utilizza la seguente risorsa 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
    }
  }
}

Visualizza lo stato del pool di connessioni gestito per un'istanza

Puoi visualizzare lo stato del pool di connessioni gestito per un'istanza utilizzando la console Google Cloud , gcloud CLI o l'API Cloud SQL.

Per visualizzare lo stato del pool di connessioni gestito per un'istanza Cloud SQL Enterprise Plus, procedi nel seguente modo:

Console

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Trova l'istanza per cui vuoi visualizzare lo stato del pool di connessioni gestito. Per aprire la pagina Panoramica dell'istanza, fai clic sul nome dell'istanza.

    La sezione Connessioni mostra se il pool di connessioni gestito è abilitato o disabilitato.

gcloud

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

Sostituisci quanto segue:

  • PROJECT_ID: il nome dell'istanza Cloud SQL per cui vuoi visualizzare lo stato del pool di connessioni gestito.

    Se il pool di connessioni gestito è abilitato, viene restituita la seguente risposta:

    connectionPoolingEnabled: true

REST v1

Per visualizzare lo stato del pool di connessioni gestito per l'istanza Cloud SQL, utilizza il seguente comando e cerca connectionPoolingEnabled:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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

Per visualizzare lo stato del pool di connessioni gestito per l'istanza Cloud SQL, utilizza il seguente comando e cerca connectionPoolingEnabled:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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"
}

Monitorare il pool di connessioni gestito

Puoi monitorare il funzionamento del pooling di connessioni gestito nelle tue istanze Cloud SQL utilizzando le seguenti metriche del pooling di connessioni gestito di Cloud SQL:

Nome metrica Descrizione
thread Monitora il conteggio dei thread nel pool di connessioni in base al relativo stato. Gli stati inclusi in questa metrica sono:
  • idle: il numero di thread inattivi nel pool.
  • active: il numero di thread attivi (non inattivi) nel pool.
pending_connection Il numero di connessioni attive nella coda di pooling.
avg_wait_time Il tempo medio trascorso dalla richiesta di connessione in attesa di un server.

Per ulteriori informazioni su queste metriche, consulta Metriche Cloud SQL. Per visualizzare queste metriche utilizzando la console Google Cloud , consulta Visualizzare le metriche nella pagina di panoramica dell'istanza Cloud SQL.

Passaggi successivi