效能擷取功能可擷取執行個體效能降低時的詳細指標,協助您診斷資料庫的暫時性問題。如要使用效能擷取功能,請為執行個體啟用這項功能,並設定觸發詳細指標快照的閾值。
事前準備
如要使用成效擷取功能,必須為執行個體啟用查詢洞察。
必要的角色
如要取得建立執行個體及啟用效能擷取功能所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
-
Cloud SQL 管理員 (
roles/cloudsql.admin) -
Compute 檢視者 (
roles/compute.viewer)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
啟用及設定效能擷取功能
建立或更新 Cloud SQL 執行個體時,您可以啟用效能擷取功能。
gcloud
建立及設定執行個體
如要在建立 Cloud SQL 執行個體時啟用效能擷取功能,請執行下列指令:
gcloud beta sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --region=REGION \ --tier=TIER \ --edition=EDITION_TYPE \ --performance-capture-config="enabled=true,PROBE_CONFIGURATION,PERFORMANCE_CAPTURE_THRESHOLDS"
更改下列內容:
- INSTANCE_NAME:執行個體名稱
- DATABASE_VERSION:資料庫版本。
例如:
MYSQL_8_4或MYSQL_8_0_37。如未指定資料庫版本,則預設資料庫版本為MYSQL_8_0。 - REGION:區域
- TIER:機器類型
- EDITION_TYPE:您的 Cloud SQL 版本
如果是 performance-capture-config 旗標,請加入 enabled=true。在相同的旗標定義中,您可以為 PROBE_CONFIGURATION 和 PERFORMANCE_CAPTURE_THRESHOLDS 指定選用設定,也可以稍後更新執行個體來指定。
例如:
gcloud beta sql instances create my-instance \ --database-version=MYSQL_8_0 \ --edition=ENTERPRISE_PLUS \ --tier=db-perf-optimized-N-4 \ --region=us-west1 \ --performance-capture-config="enabled=true,probing-interval-seconds=30,probe-threshold=5,running-threads-threshold=10,transaction-duration-threshold=300"
更新現有執行個體
如要為現有 Cloud SQL 執行個體啟用效能擷取功能,請執行下列指令:
gcloud beta sql instances patch INSTANCE_NAME \ --performance-capture-config="enabled=true,PROBE_CONFIGURATION,PERFORMANCE_CAPTURE_THRESHOLDS"
請為 performance-capture-config 旗標加上 enabled=true。針對相同旗標,您可以為 PROBE_CONFIGURATION 和 PERFORMANCE_CAPTURE_THRESHOLDS 指定選用設定。
您也可以使用 gcloud beta sql instances patch 指令,更新現有執行個體的效能擷取門檻設定值。
設定效能指標的探測間隔和連續探測次數
您可以將 PROBE_CONFIGURATION 替換成下列一或多個旗標設定。如未設定旗標,監控代理程式會使用預設值。
probing-interval-seconds=SECONDS:介於20和86400之間的整數。指標探測作業之間的時間間隔 (以秒為單位)。例如:30、60、100。 預設值為30。probe-threshold=PROBES:必須連續超過門檻的次數,才會觸發效能擷取作業。有效範圍為1至20。 預設值為3。
設定效能擷取門檻
您可以將 PERFORMANCE_CAPTURE_THRESHOLDS 替換為下列一或多個旗標設定。如果沒有為旗標設定值,監控代理程式會使用門檻的預設值。
running-threads-threshold=THREADS:針對主要執行個體,視為超過門檻的有效執行緒數量下限。例如10。必須大於或等於10。 如未設定,預設值會根據執行個體大小而定。 預設值為MIN(600, cpuCount * 20)。seconds-behind-source-threshold=SECONDS:唯讀副本的最低複製延遲時間 (以秒為單位),超過此值即視為超出門檻。必須大於0。 預設值為900。transaction-duration-threshold=SECONDS:未完成交易的持續時間 (以秒為單位),之後系統會追蹤交易並納入成效擷取記錄。例如300、600。值不得小於60。 預設值為3600。
REST v1
建立及設定執行個體
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:專案 ID
- INSTANCE_ID:執行個體 ID
- DATABASE_VERSION:資料庫版本。
例如:
MYSQL_8_4或MYSQL_8_0_37。如未指定資料庫版本,則預設資料庫版本為MYSQL_8_0。 - REGION:區域
- MACHINE_TYPE:機器類型
- EDITION_TYPE:您的 Cloud SQL 版本
- PROBING_INTERVAL_SECONDS:介於
20和86400之間的整數。 指標探測作業之間的時間間隔 (以秒為單位)。預設值為30。 - PROBE_THRESHOLD:必須連續超過門檻的次數,才會觸發效能擷取。有效範圍為
1至20。預設值為3。 - RUNNING_THREADS_THRESHOLD:主要執行個體中,超過門檻的有效執行緒數量下限。例如
10。必須大於或等於10。 如未設定,預設值會根據執行個體大小而定。 預設值為MIN(600, cpuCount * 20)。 - SECONDS_BEHIND_SOURCE_THRESHOLD:唯讀副本的最低複製延遲時間 (以秒為單位),超過此值即視為超出門檻。必須大於
0。預設值為900。 - TRANSACTION_DURATION_THRESHOLD:未提交交易的持續時間 (以秒為單位),之後系統會追蹤交易並納入成效擷取記錄。例如
300、600。值不得小於60。預設值為3600。
HTTP 方法和網址:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
JSON 要求主體:
{
"name": "INSTANCE_ID",
"region": "REGION",
"databaseVersion": "DATABASE_VERSION",
"settings": {
"tier": "MACHINE_TYPE",
"edition": "EDITION_TYPE"
},
"performanceCaptureConfig": {
"enabled": true,
"probingIntervalSeconds": PROBING_INTERVAL_SECONDS,
"probeThreshold": PROBE_THRESHOLD,
"runningThreadsThreshold": RUNNING_THREADS_THRESHOLD,
"secondsBehindSourceThreshold": SECONDS_BEHIND_SOURCE_THRESHOLD,
"transactionDurationThreshold": TRANSACTION_DURATION_THRESHOLD
}
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2025-11-10T22:19:33.735Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
更新現有執行個體
使用任何要求資料之前,請先修改下列項目的值:
- PERFORMANCE_CAPTURE_ENABLE:設為
true,為執行個體啟用效能擷取功能。 - PROBING_INTERVAL_SECONDS:介於
20和86400之間的整數。 指標探測作業之間的時間間隔 (以秒為單位)。預設值為30。 - PROBE_THRESHOLD:必須連續超過門檻的次數,才會觸發效能擷取。有效範圍為
1至20。預設值為3。 - RUNNING_THREADS_THRESHOLD:主要執行個體中,超過門檻的有效執行緒數量下限。例如
10。必須大於或等於10。 如未設定,預設值會根據執行個體大小而定。 預設值為MIN(600, cpuCount * 20)。 - SECONDS_BEHIND_SOURCE_THRESHOLD:唯讀副本的最低複製延遲時間 (以秒為單位),超過此值即視為超出門檻。必須大於
0。預設值為900。 - TRANSACTION_DURATION_THRESHOLD:未提交交易的持續時間 (以秒為單位),之後系統會追蹤交易並納入成效擷取記錄。例如
300、600。值不得小於60。預設值為3600。
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 要求主體:
{
"performanceCaptureConfig": {
"enabled": PERFORMANCE_CAPTURE_ENABLE,
"probingIntervalSeconds": PROBING_INTERVAL_SECONDS,
"probeThreshold": PROBE_THRESHOLD,
"runningThreadsThreshold": RUNNING_THREADS_THRESHOLD,
"secondsBehindSourceThreshold": SECONDS_BEHIND_SOURCE_THRESHOLD,
"transactionDurationThreshold": TRANSACTION_DURATION_THRESHOLD
},
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2025-11-10T22:19:33.735Z",
"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
建立及設定執行個體
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:專案 ID
- INSTANCE_ID:執行個體 ID
- DATABASE_VERSION:資料庫版本。
例如:
MYSQL_8_4或MYSQL_8_0_37。如未指定資料庫版本,則預設資料庫版本為MYSQL_8_0。 - REGION:區域
- MACHINE_TYPE:機器類型
- EDITION_TYPE:您的 Cloud SQL 版本
- PROBING_INTERVAL_SECONDS:介於
20和86400之間的整數。 指標探測作業之間的時間間隔 (以秒為單位)。預設值為30。 - PROBE_THRESHOLD:必須連續超過門檻的次數,才會觸發效能擷取。有效範圍為
1至20。預設值為3。 - RUNNING_THREADS_THRESHOLD:主要執行個體中,超過門檻的有效執行緒數量下限。例如
10。必須大於或等於10。 如未設定,預設值會根據執行個體大小而定。 預設值為MIN(600, cpuCount * 20)。 - SECONDS_BEHIND_SOURCE_THRESHOLD:唯讀副本的最低複製延遲時間 (以秒為單位),超過此值即視為超出門檻。必須大於
0。預設值為900。 - TRANSACTION_DURATION_THRESHOLD:未提交交易的持續時間 (以秒為單位),之後系統會追蹤交易並納入成效擷取記錄。例如
300、600。值不得小於60。預設值為3600。
HTTP 方法和網址:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
JSON 要求主體:
{
"name": "INSTANCE_ID",
"region": "REGION",
"databaseVersion": "DATABASE_VERSION",
"settings": {
"tier": "MACHINE_TYPE",
"edition": "EDITION_TYPE",
},
"performanceCaptureConfig": {
"enabled": true,
"probingIntervalSeconds": PROBING_INTERVAL_SECONDS,
"probeThreshold": PROBE_THRESHOLD,
"runningThreadsThreshold": RUNNING_THREADS_THRESHOLD,
"secondsBehindSourceThreshold": SECONDS_BEHIND_SOURCE_THRESHOLD,
"transactionDurationThreshold": TRANSACTION_DURATION_THRESHOLD
},
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2025-11-10T22:19:33.735Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
更新現有執行個體
使用任何要求資料之前,請先修改下列項目的值:
- PERFORMANCE_CAPTURE_ENABLE:設為
true,為執行個體啟用效能擷取功能。 - PROBING_INTERVAL_SECONDS:介於
20和86400之間的整數。 指標探測作業之間的時間間隔 (以秒為單位)。預設值為30。 - PROBE_THRESHOLD:必須連續超過門檻的次數,才會觸發效能擷取。有效範圍為
1至20。預設值為3。 - RUNNING_THREADS_THRESHOLD:主要執行個體中,超過門檻的有效執行緒數量下限。例如:
10。必須大於或等於10。 如未設定,預設值會根據執行個體大小而定。 預設值為MIN(600, cpuCount * 20)。 - SECONDS_BEHIND_SOURCE_THRESHOLD:唯讀副本的最低複製延遲時間 (以秒為單位),超過此值即視為超出門檻。必須大於
0。預設值為900。 - TRANSACTION_DURATION_THRESHOLD:未提交交易的持續時間 (以秒為單位),之後系統會追蹤交易並納入成效擷取記錄。例如
300、600。值不得小於60。預設值為3600。
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 要求主體:
{
"performanceCaptureConfig": {
"enabled": PERFORMANCE_CAPTURE_ENABLE,
"probingIntervalSeconds": PROBING_INTERVAL_SECONDS,
"probeThreshold": PROBE_THRESHOLD,
"runningThreadsThreshold": RUNNING_THREADS_THRESHOLD,
"secondsBehindSourceThreshold": SECONDS_BEHIND_SOURCE_THRESHOLD,
"transactionDurationThreshold": TRANSACTION_DURATION_THRESHOLD
},
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2025-11-10T22:19:33.735Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
停用效能擷取功能
如要停用效能擷取功能,請使用下列指令。
gcloud
gcloud beta sql instances patch INSTANCE_NAME \ --performance-capture-config="enabled=false"
將 INSTANCE_NAME 替換為要停用效能擷取的執行個體名稱。
REST v1
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 要求主體:
{
"performanceCaptureConfig": {
"enabled": false
}
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "INSERT_TIME",
"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
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 要求主體:
{
"performanceCaptureConfig": {
"enabled": false
}
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2025-11-10T22:19:33.735Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}