Configurare il pool di connessioni gestito

Questa pagina descrive come abilitare, configurare e monitorare il pool di connessioni gestite nelle istanze Cloud SQL.

Il pool di connessioni gestito ti consente di scalare i workload ottimizzando l'utilizzo delle risorse e la latenza di connessione per le tue istanze utilizzando il pool. Per informazioni dettagliate sul pool di connessioni gestito e su come utilizzarlo per le tue istanze, consulta la panoramica del pool di connessioni gestito.

Prima di iniziare

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

Abilita il pool di connessioni gestito

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

Abilita il pool di connessioni gestito per una nuova istanza

Per creare una nuova istanza con il pool di connessioni gestito abilitato, consulta Crea istanze. Puoi attivare il pool di connessioni gestite per una nuova istanza solo utilizzando gcloud CLI o l'API Cloud SQL.

Abilita il pool di connessioni gestito per un'istanza esistente

Per abilitare il pool di connessioni gestito per un'istanza esistente:

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 abilitare il pool di connessioni gestito, seleziona la casella Abilita pool di connessioni gestito.

  6. Fai clic su Salva.

gcloud

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

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

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza Cloud SQL.

REST v1

Utilizza il seguente comando e imposta connectionPoolingEnabled:

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

  • 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

Utilizza il seguente comando e imposta connectionPoolingEnabled:

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

  • 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

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 attivato il pool di connessioni gestito, puoi personalizzarlo per soddisfare le esigenze della tua istanza utilizzando le opzioni di configurazione avanzate. Queste opzioni di configurazione sono chiamate flag del pool di connessioni gestito. Per ulteriori informazioni sulle opzioni di configurazione avanzata, sui relativi valori predefiniti e sugli intervalli, consulta Opzioni di configurazione avanzata.

Per modificare le opzioni di configurazione avanzate del pool di connessioni gestito per un'istanza, segui questi passaggi:

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. In Pool di connessioni gestito, espandi Opzioni avanzate di pooling.

    Modifica le opzioni di pooling avanzate che vuoi aggiornare.

  6. Fai clic su Salva.

gcloud

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

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

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza Cloud SQL.
  • CONFIGURATION_NAME: il nome dell'opzione di configurazione. Per un elenco di tutte le opzioni di configurazione avanzata, consulta Opzioni di configurazione avanzata.
  • CONFIGURATION_VALUE: il nuovo valore per l'opzione di configurazione selezionata.

REST v1

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

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

  • 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 avanzate del pool di connessioni gestite, utilizza il seguente comando e imposta ConnectionPoolConfig:

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

  • 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 avanzate del pool di connessioni gestite, 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"
      }
    }
  }
}

Disabilita il pool di connessioni gestito per un'istanza

Puoi disabilitare il pool di connessioni gestite 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, segui questi passaggi:

Console

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

    Vai a Istanze Cloud SQL

  2. Trova l'istanza per cui vuoi disabilitare 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 sql instances per disabilitare il pool di connessioni gestito.

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

Sostituisci quanto segue:

  • PROJECT_ID: il nome dell'istanza Cloud SQL.

REST v1

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

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

  • 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 gestite per un'istanza, utilizza il seguente comando e imposta connectionPoolingEnabled:

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

  • 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 disabilitare il pool di connessioni gestite 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 gestite per un'istanza utilizzando la console Google Cloud , gcloud CLI o l'API Cloud SQL.

Per visualizzare lo stato del pool di connessioni gestite per un'istanza Cloud SQL Enterprise Plus, segui questi passaggi:

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

Utilizza il comando gcloud sql instances describe per visualizzare lo stato del pool di connessioni gestite per un'istanza:

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

Sostituisci quanto segue:

  • PROJECT_ID: il nome dell'istanza Cloud SQL.

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

    connectionPoolingEnabled: true

REST v1

Per visualizzare lo stato del pool di connessioni gestite per la tua istanza Cloud SQL, utilizza il seguente comando e cerca connectionPoolingEnabled:

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

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 gestite per la tua istanza Cloud SQL, utilizza il seguente comando e cerca connectionPoolingEnabled:

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

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

Monitora il pool di connessioni gestito

Puoi monitorare l'esecuzione del pool di connessioni gestite sulle tue istanze Cloud SQL utilizzando le seguenti metriche del pool di connessioni gestite di Cloud SQL:

Nome metrica Descrizione
thread Monitora il numero di thread nel pool di connessioni in base allo 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 attualmente in coda nella coda di lavoro.
avg_wait_time Il tempo medio trascorso dalla richiesta di connessione in attesa di un server.

Per saperne di più su queste metriche, consulta Metriche di Cloud SQL. Per visualizzare queste metriche utilizzando la console Google Cloud , consulta Visualizza le metriche nella pagina Panoramica dell'istanza Cloud SQL.

Passaggi successivi