הגדרה של מאגר חיבורים מנוהל

בדף הזה מוסבר איך להפעיל, להגדיר ולנטר את מאגר החיבורים המנוהל במכונות של Cloud SQL.

התכונה "מאגר חיבורים מנוהל" מאפשרת לשנות את קנה המידה של עומסי העבודה, על ידי אופטימיזציה של ניצול המשאבים וזמן האחזור של החיבור למכונות באמצעות מאגר. במאמר סקירה כללית על מאגר חיבורים מנוהל מוסבר בפירוט איך להשתמש במאגר חיבורים מנוהל במכונות שלכם.

לפני שמתחילים

הפעלת מאגר חיבורים מנוהל

אפשר להפעיל את Managed Connection Pooling במכונה בזמן היצירה, או לערוך מכונה קיימת כדי להפעיל את התכונה.

הפעלת מאגר חיבורים מנוהל במכונה חדשה

כדי ליצור מכונה חדשה עם מאגר חיבורים מנוהל, קראו את המאמר יצירת מכונות. אפשר להפעיל את מאגר החיבורים המנוהל במכונה חדשה רק באמצעות ה-CLI של gcloud או Cloud SQL API.

הפעלת מאגר חיבורים מנוהל במכונה קיימת

כדי להפעיל את Managed Connection Pooling במכונה קיימת:

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. מאתרים את המכונה שרוצים להפעיל בה את מאגר החיבורים המנוהל. כדי לפתוח את דף הסקירה הכללית של המכונה, לוחצים על שם המכונה.

  3. לוחצים על Edit.

  4. בקטע Customize your instance, מרחיבים את Connections.

  5. כדי להפעיל את Managed Connection Pooling, מסמנים את התיבה Enable Managed Connection Pool.

  6. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud sql instances כדי להפעיל את מאגר החיבורים המנוהל.

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

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_NAME: השם של המכונה ב-Cloud SQL.

REST v1

משתמשים בפקודה הבאה ומגדירים את connectionPoolingEnabled:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫INSTANCE_ID: מזהה המכונה

ה-method של ה-HTTP וכתובת ה-URL:

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

תוכן בקשת JSON:

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

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

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

משתמשים בפקודה הבאה ומגדירים את connectionPoolingEnabled:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫INSTANCE_ID: מזהה המכונה

ה-method של ה-HTTP וכתובת ה-URL:

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

תוכן בקשת JSON:

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

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

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

משתמשים במשאב הבא של 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
    }
  }
}

שינוי של Managed Connection Pooling במכונה

אחרי שמפעילים את Managed Connection Pooling, אפשר להתאים אישית את Managed Connection Pooling בהתאם לצורכי המכונה באמצעות אפשרויות הגדרה מתקדמות. אפשרויות ההגדרה האלה נקראות דגלי מאגר של Managed Connection Pooling. במאמר אפשרויות הגדרה מתקדמות תוכלו לקרוא מידע נוסף על אפשרויות ההגדרה המתקדמות, ערכי ברירת המחדל והטווחים שלהן.

כדי לשנות את אפשרויות ההגדרה המתקדמות של Managed Connection Pooling במכונה:

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. מאתרים את המכונה שרוצים להפעיל בה את מאגר החיבורים המנוהל. כדי לפתוח את דף הסקירה הכללית של המכונה, לוחצים על שם המכונה.

  3. לוחצים על Edit.

  4. בקטע Customize your instance, מרחיבים את Connections.

  5. בקטע Managed connection pool, מרחיבים את Advanced pooling options.

    משנים את האפשרויות המתקדמות של מאגר הכתובות שרוצים לעדכן.

  6. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud sql instances כדי לשנות את אפשרויות ההגדרה.

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

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_NAME: השם של המכונה ב-Cloud SQL.
  • ‫CONFIGURATION_NAME: השם של אפשרות ההגדרה. רשימה של כל אפשרויות ההגדרה המתקדמות מופיעה במאמר אפשרויות הגדרה מתקדמות.
  • ‫CONFIGURATION_VALUE: הערך החדש של אפשרות ההגדרה שנבחרה.

REST v1

כדי לשנות את ההגדרות המתקדמות של Managed Connection Pooling, משתמשים בפקודה הבאה ומגדירים את ConnectionPoolConfig:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫INSTANCE_ID: מזהה המכונה

ה-method של ה-HTTP וכתובת ה-URL:

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

תוכן בקשת JSON:

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

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

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

כדי לשנות את ההגדרות המתקדמות של Managed Connection Pooling, משתמשים בפקודה הבאה ומגדירים את ConnectionPoolConfig:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫INSTANCE_ID: מזהה המכונה

ה-method של ה-HTTP וכתובת ה-URL:

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

תוכן בקשת JSON:

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

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

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

כדי לשנות את ההגדרות המתקדמות של מאגר החיבורים המנוהל, משתמשים במשאב 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"
      }
    }
  }
}

השבתת מאגר החיבורים המנוהל במכונה

אפשר להשבית את מאגר החיבורים המנוהל במכונה קיימת באמצעותCloud de Confiance המסוף, ה-CLI של gcloud או Cloud SQL API.

כדי להשבית את מאגר החיבורים המנוהל במכונה:

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. מאתרים את המכונה שרוצים להשבית בה את מאגר החיבורים המנוהל. כדי לפתוח את דף הסקירה הכללית של המכונה, לוחצים על שם המכונה.

  3. לוחצים על Edit.

  4. בקטע Customize your instance, מרחיבים את Connections.

  5. כדי להשבית את Managed Connection Pooling, מבטלים את הסימון בתיבה Enable Managed Connection Pool.

  6. לוחצים על Save.

gcloud

משתמשים בפקודה gcloud sql instances כדי להשבית את Managed Connection Pooling.

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

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: השם של המכונה ב-Cloud SQL.

REST v1

כדי להשבית את מאגר החיבורים המנוהל במכונה, משתמשים בפקודה הבאה ומגדירים את connectionPoolingEnabled:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫INSTANCE_ID: מזהה המכונה

ה-method של ה-HTTP וכתובת ה-URL:

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

תוכן בקשת JSON:

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

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

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

כדי להשבית את מאגר החיבורים המנוהל במכונה, משתמשים בפקודה הבאה ומגדירים את connectionPoolingEnabled:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫INSTANCE_ID: מזהה המכונה

ה-method של ה-HTTP וכתובת ה-URL:

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

תוכן בקשת JSON:

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

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

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

כדי להשבית את מאגר החיבורים המנוהל במכונה, משתמשים במשאב 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
    }
  }
}

איך בודקים את הסטטוס של מאגר החיבורים המנוהל של מכונה מסוימת

אתם יכולים לראות את הסטטוס של מאגר החיבורים המנוהל של מכונה באמצעות מסוף Cloud de Confiance , ה-CLI של gcloud או Cloud SQL API.

כדי לראות את הסטטוס של מאגר החיבורים המנוהל במכונה של מהדורת Cloud SQL Enterprise Plus:

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .

    כניסה לדף Cloud SQL Instances

  2. מאתרים את המכונה שרוצים לראות את סטטוס מאגר החיבורים המנוהל שלה. כדי לפתוח את דף הסקירה הכללית של המכונה, לוחצים על שם המכונה.

    בקטע Connections אפשר לראות אם המאגר המנוהל של החיבורים מופעל או מושבת.

gcloud

כדי לראות את הסטטוס של מאגר החיבורים המנוהל של מכונה, משתמשים בפקודה gcloud sql instances describe:

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

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: השם של המכונה ב-Cloud SQL.

    אם המאגר המנוהל של החיבורים מופעל, מוחזרת התגובה הבאה:

    connectionPoolingEnabled: true

REST v1

כדי לראות את הסטטוס של מאגר החיבורים המנוהל במכונה של Cloud SQL, משתמשים בפקודה הבאה ומחפשים את connectionPoolingEnabled:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

ה-method של ה-HTTP וכתובת ה-URL:

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

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

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

כדי לראות את הסטטוס של מאגר החיבורים המנוהל במכונה של Cloud SQL, משתמשים בפקודה הבאה ומחפשים את connectionPoolingEnabled:

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

ה-method של ה-HTTP וכתובת ה-URL:

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

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

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

מעקב אחרי מאגר חיבורים מנוהל

אתם יכולים לעקוב אחרי האופן שבו מאגר החיבורים המנוהל פועל במכונות של Cloud SQL, באמצעות המדדים הבאים של מאגר החיבורים המנוהל ב-Cloud SQL:

שם המדד תיאור
threads מעקב אחרי מספר השרשורים במאגר החיבורים לפי הסטטוס שלהם. הסטטוסים שכלולים במדד הזה הם:
  • ‫idle: מספר השרשורים הלא פעילים במאגר.
  • ‫active: מספר השרשורים הפעילים (לא במצב של חוסר פעילות) במאגר.
pending_connection מספר החיבורים שנמצאים כרגע בתור העבודה.
avg_wait_time הזמן הממוצע שבקשת החיבור ממתינה לשרת.

למידע נוסף על המדדים האלה, ראו מדדי Cloud SQL. כדי לראות את המדדים האלה במסוף Cloud de Confiance , עיינו במאמר הצגת מדדים בדף הסקירה הכללית של מכונות Cloud SQL.

המאמרים הבאים