התכונה 'שינוי גודל אוטומטי של מאגר קריאה' מוסיפה או מסירה באופן אוטומטי צמתים של מאגר קריאה במאגר הקריאה בהתאם לצרכים של עומס העבודה של האפליקציה.
אתם יכולים לשלוט בשינוי הגודל האוטומטי של מאגר הקריאה על ידי הגבלת השימוש הממוצע במעבד (CPU) במאגר הקריאה או על ידי הגבלת מספר החיבורים של הלקוחות שמוקצית להם גישה למאגר הקריאה. לשם כך, אתם יכולים להשתמש באחד משני מדדי היעד הבאים:
- ממוצע ניצול יחידת העיבוד המרכזית (CPU): מאפשר להגדיר את ממוצע השימוש במעבד שרוצים שמאגר הקריאה יפעל במסגרתו. מאגר הקריאה מתרחב או מצטמצם באופן אוטומטי בהתאם לשימוש ב-CPU של עומס העבודה של האפליקציה.
- המספר הממוצע של חיבורים למסד הנתונים: מאפשר לציין את המספר הממוצע של חיבורים למסד הנתונים של הלקוח שכל צומת צריך לשרת. המאגר לקריאה מתרחב אוטומטית בהתאם למספר החיבורים של הלקוח.
כדי להחיל את מדדי היעד האלה, צריך להגדיר גם מספר מינימלי ומקסימלי של צמתים במאגר לקריאה.
כדי להפעיל את שינוי הגודל האוטומטי של מאגר הקריאה, אפשר להגדיר מדד יעד אחד או את שניהם במופע. אם שני המדדים פעילים, Cloud SQL מחיל את מספר הצמתים המקסימלי במאגר הקריאה שמצוין בשני המדדים.
בטבלה הבאה מפורטות המגבלות של כל מדד יעד:
| שם מדד היעד | מגבלות | מדד ציבורי קשור |
|---|---|---|
| ממוצע ניצול המעבד | בין 0.1 ל-0.9. | ממוצע ניצול המעבד (cloudsql.googleapis.com/database/cpu/utilization) בצמתים של מאגר הקריאה במאגר הקריאה. |
| חיבורים ממוצעים למסד נתונים |
בין 10 ל-262,142.
הערה: הערך המקסימלי הקביל תואם לערך המקסימלי שמוגדר על ידי דגל מסד הנתונים max_connections.
|
מייצג ממוצע של חיבורי לקוח למסד נתונים
(cloudsql.googleapis.com/database/postgresql/num_backends)
בצמתים של מאגר הקריאה במאגר הקריאה.
הערה: אם האפשרות Managed Connection Pooling מופעלת במופע, החיבורים הנפרדים שמרכיבים מאגר חיבורים לא נספרים בנפרד ולא נכללים במדד AVERAGE_DB_CONNECTIONS. אם התכונה 'ניהול מאגר חיבורים' מופעלת, מומלץ להשתמש רק במדד AVERAGE_CPU_UTILIZATION כדי לשלוט בהתאמת הגודל האוטומטית של מאגר הקריאה.
|
כשמתקיימים התנאים לשינוי הגודל של מאגר הקריאה, אפשר לראות את הפעולות של שינוי הגודל האוטומטי של מאגר הקריאה במסוף Google Cloud . כל הפעולות האחרות במאגר הקריאה ובמופע הראשי נחסמות עד שהשינוי האוטומטי של גודל מאגר הקריאה מסתיים.
קריאת מאפייני התאמה אוטומטית של גודל המאגר
המאפיינים הבאים רלוונטיים:
- בפעולות של הקטנת הקיבולת, אפשר להסיר רק צומת אחד בכל פעם.
- פעולות הרחבה מוסיפות במקביל כמה צמתים שצריך.
- כברירת מחדל, מוחלות פעולות של הגדלה והקטנה של הקיבולת. אפשר לחסום פעולות של הקטנת הקיבולת על ידי השבתה ידנית שלהן (
disableScaleIn). - כברירת מחדל, מוחל פרק זמן להשהיה של 600 שניות בין פעולות עוקבות של שינוי גודל מאגר הקריאה באופן אוטומטי. נדרש תקופת צינון מינימלית של 60 שניות בין שינויים, בין אם מגדילים או מקטינים את מספר השרתים.
- כשמגדירים מדד יעד, צריך להגדיר גם את מספר הצמתים המינימלי (
minNodeCount) והמקסימלי (maxNodeCount) של מאגר הקריאה שרוצים להשתמש בו. אם מפעילים שינוי גודל אוטומטי במאגר קריאה קיים, הגודל הנוכחי של מאגר הקריאה צריך להיות בטווח שהגדרתם.
מגבלות
ההגבלות הבאות חלות:
- אם רוצים ליצור מאגר קריאה חדש או לשנות את הגודל של מאגר קריאה קיים, צריך לחכות עד שהפעולות הקודמות של יצירה ושינוי גודל יושלמו. זה חל על פעולות שמשויכות למאגר הקריאה וגם על מאגרי קריאה אחרים שמשויכים לאותו מופע ראשי. אם מנסים להפעיל פעולות בו-זמניות, יכול להיות שתופיע הודעת השגיאה הבאה:
Operation failed because another operation was already in progress.
לפני שמתחילים
חשוב לוודא שהשלמתם את כל השלבים המקדימים הנדרשים ליצירת מאגר לקריאה.
חשוב להשתמש ב-
gcloudבגרסה 544.0.0 ואילך.חשוב להשתמש בגרסת Terraform provider 7.8.0 ואילך.
- חשוב להגדיר גם ערכים מתאימים לפרמטרים
max_wal_sendersו-max_replication_slots. מידע נוסף זמין במאמר בנושא קריאת מאפייני מאגר.
יצירת מאגר לקריאה עם התאמה אוטומטית לעומס
אם מציינים ערך יעד של 0.50 ל-AVERAGE_CPU_UTILIZATION, צמתים של מאגר קריאה יתווספו למאגר הקריאה או יוסרו ממנו כדי לשמור על ניצול ממוצע של CPU במאגר הקריאה ברמה של 0.50 או פחות.
gcloud
כדי ליצור מאגר לקריאה עם הפעלה של שינוי גודל אוטומטי, מריצים את הפקודה הבאה:
gcloud sql instances create READ_POOL_NAME \ --tier=MACHINE_TIER --edition=ENTERPRISE_PLUS \ --instance-type=READ_POOL_INSTANCE --node-count=NODE_COUNT \ --database-version=DATABASE_VERSION \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --region=REGION --network=NETWORK_NAME \ --no-assign-ip \ --auto-scale-enabled \ --auto-scale-max-node-count=MAX_NODE_COUNT \ --auto-scale-min-node-count=MIN_NODE_COUNT \ --auto-scale-target-metrics=TARGET_METRIC_1=VALUE_1
מחליפים את מה שכתוב בשדות הבאים:
- READ_POOL_NAME: השם שרוצים להקצות למאגר לקריאה.
- MACHINE_TIER: רמת המכונה שרוצים להשתמש בה, למשל
db-perf-optimized-N-2. - NODE_COUNT: מספר הצמתים במאגר הקריאה שרוצים להתחיל איתו.
- DATABASE_VERSION: גרסת מסד הנתונים שרוצים להשתמש בה, כמו
POSTGRES_16. - PRIMARY_INSTANCE_NAME: השם של המכונה הראשית שרוצים להשתמש בה.
- REGION: האזור שבו רוצים להשתמש, למשל
us-east1. - NETWORK_NAME: השם של הרשת שבה רוצים להשתמש.
- MAX_NODE_COUNT: המספר המקסימלי של צמתים במאגר הקריאה שרוצים להשתמש בהם, למשל
5. - MIN_NODE_COUNT: מספר הצמתים המינימלי במאגר הקריאה שרוצים להשתמש בו, למשל
1. - TARGET_METRIC_1: מדד היעד שרוצים להשתמש בו, למשל:
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1: הערך שרוצים להקצות למדד היעד שצוין קודם. לדוגמה, למדד היעד
AVERAGE_CPU_UTILIZATIONאפשר להקצות את הערך0.50.
Terraform
כדי ליצור מאגר קריאה עם הפעלה של שינוי גודל אוטומטי, משתמשים במשאב של Terraform.
הדוגמה הבאה כוללת משאבים עבור המופע הראשי ומאגר הקריאה.
החלה של השינויים
כדי להחיל את הגדרות Terraform בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Google Cloud
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
מחיקת השינויים
כדי למחוק את השינויים:
- כדי להשבית את ההגנה מפני מחיקה, מגדירים בקובץ התצורה של Terraform את הארגומנט
deletion_protectionלערךfalse.deletion_protection = "false"
- מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform המעודכנות:terraform apply
-
כדי להסיר משאבים שהוחלו בעבר על הגדרות Terraform, מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה:terraform destroy
REST v1
כדי ליצור מאגר קריאה עם הפעלה של שינוי גודל אוטומטי, משתמשים בבקשת POST עם ה-method instances:insert.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- READ_POOL_NAME: השם שרוצים להקצות למאגר לקריאה.
- REGION: האזור שבו רוצים שהמכונה תמוקם, למשל
us-central1. - PRIMARY_INSTANCE_ID: המזהה של המכונה הראשית שרוצים להשתמש בה.
- PROJECT_ID: מזהה הפרויקט שבו רוצים למקם את מאגר הקריאה, למשל
my-project-name. - DATABASE_VERSION: גרסת מסד הנתונים שרוצים להשתמש בה, כמו
POSTGRES_16. - MACHINE_TIER: רמת המכונה שרוצים להשתמש בה, למשל
db-perf-optimized-N-2. - FULL_NETWORK_NAME: השם של הרשת שבה רוצים להשתמש.
- MAX_NODE_COUNT: המספר המקסימלי של צמתים במאגר הקריאה שרוצים להשתמש בהם, למשל
10. - MIN_NODE_COUNT: מספר הצמתים המינימלי במאגר הקריאה שרוצים להשתמש בו, למשל
2. - TARGET_METRIC_1: מדד היעד שרוצים להשתמש בו, כמו
AVERAGE_CPU_UTILIZATIONאוAVERAGE_DB_CONNECTIONS. צריך להגדיר לפחות אחד משני המדדים שזמינים. - VALUE_1: הערך שרוצים להקצות למדד היעד שצוין קודם. לדוגמה, למדד היעד
AVERAGE_CPU_UTILIZATIONאפשר להקצות את הערך0.50. - NODE_COUNT: מספר הצמתים במאגר הקריאה שרוצים להתחיל איתו, למשל
3.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{
"name":"READ_POOL_NAME",
"region":"REGION",
"masterInstanceName":"PRIMARY_INSTANCE_ID",
"project":"PROJECT_ID",
"databaseVersion":"DATABASE_VERSION",
"settings":{
"tier":"MACHINE_TIER",
"edition":"ENTERPRISE_PLUS",
"ipConfiguration":{
"privateNetwork":"FULL_NETWORK_NAME",
"ipv4Enabled": false
},
"readPoolAutoScaleConfig":{
"enabled": true,
"minNodeCount": MIN_NODE_COUNT,
"maxNodeCount": MAX_NODE_COUNT,
"targetMetrics": [
{
"metric":"TARGET_METRIC_1",
"targetValue": VALUE_1
}
]
}
},
"instanceType":"READ_POOL_INSTANCE",
"nodeCount": NODE_COUNT
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "PRIMARY_INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
כדי ליצור מאגר קריאה עם הפעלה של שינוי גודל אוטומטי, משתמשים בבקשת POST עם ה-method instances:insert.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- READ_POOL_NAME: השם שרוצים להקצות למאגר לקריאה.
- REGION: האזור שבו רוצים שהמכונה תמוקם, למשל
us-central1. - PRIMARY_INSTANCE_ID: המזהה של המכונה הראשית שרוצים להשתמש בה.
- PROJECT_ID: מזהה הפרויקט שבו רוצים למקם את מאגר הקריאה, למשל
my-project-name. - DATABASE_VERSION: גרסת מסד הנתונים שרוצים להשתמש בה, כמו
POSTGRES_16. - MACHINE_TIER: רמת המכונה שרוצים להשתמש בה, למשל
db-perf-optimized-N-2. - FULL_NETWORK_NAME: השם של הרשת שבה רוצים להשתמש.
- MAX_NODE_COUNT: המספר המקסימלי של צמתים במאגר הקריאה שרוצים להשתמש בהם, למשל
10. - MIN_NODE_COUNT: מספר הצמתים המינימלי במאגר הקריאה שרוצים להשתמש בו, למשל
2. - TARGET_METRIC_1: מדד היעד שרוצים להשתמש בו, כמו המדדים הבאים:
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1: הערך שרוצים להקצות למדד היעד שצוין קודם. בדוגמה הזו, למדד היעד
AVERAGE_CPU_UTILIZATIONמוקצה הערך0.50. - NODE_COUNT: מספר הצמתים במאגר הקריאה שרוצים להתחיל איתו, למשל
3.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{
"name":"READ_POOL_NAME",
"region":"REGION",
"masterInstanceName":"PRIMARY_INSTANCE_ID",
"project":"PROJECT_ID",
"databaseVersion":"DATABASE_VERSION",
"settings":{
"tier":"MACHINE_TIER",
"edition":"ENTERPRISE_PLUS",
"ipConfiguration":{
"privateNetwork":"FULL_NETWORK_NAME",
"ipv4Enabled": false
},
"readPoolAutoScaleConfig":{
"enabled": true,
"minNodeCount": MIN_NODE_COUNT,
"maxNodeCount": MAX_NODE_COUNT,
"targetMetrics": [
{
"metric":"TARGET_METRIC_1",
"targetValue": VALUE_1
}
]
}
},
"instanceType":"READ_POOL_INSTANCE",
"nodeCount": NODE_COUNT
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/PRIMARTY_INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "PRIMARTY_INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
הפעלת שינוי גודל אוטומטי של מאגר קריאה במאגר קריאה קיים
אם כבר יצרתם מאגר קריאה, אתם יכולים להפעיל את התאמה אוטומטית לעומס (automatic scaling) על ידי ציון הגדרות התאמה אוטומטית לעומס (automatic scaling) שבהן אתם רוצים להשתמש.
לדוגמה, אם מציינים ערך יעד של 50 עבור AVERAGE_DB_CONNECTIONS, צמתים יתווספו למאגר הקריאה או יוסרו ממנו כדי לשמור על מספר ממוצע של חיבורי מסד נתונים במאגר של 50 או פחות.
gcloud
כדי להפעיל מאגר קריאה עם התאמה אוטומטית לעומס במאגר קריאה קיים, מריצים את הפקודה הבאה.
gcloud sql instances patch INSTANCE --auto-scale-enabled --auto-scale-max-node-count=MAX_NODE_COUNT --auto-scale-min-node-count=MIN_NODE_COUNT --auto-scale-out-cooldown-seconds=COOLDOWN_SECONDS_SCALE_OUT --auto-scale-in-cooldown-seconds=COOLDOWN_SECONDS_SCALE_IN --auto-scale-target-metrics=TARGET_METRIC_1=VALUE_1
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: שם המכונה שמשויך למאגר הקריאה שרוצים לשנות.
- MAX_NODE_COUNT: המספר המקסימלי של צמתים במאגר הקריאה שרוצים להשתמש בהם, למשל
10. - MIN_NODE_COUNT: מספר הצמתים המינימלי במאגר הקריאה שרוצים להשתמש בו, למשל
2. - COOLDOWN_SECONDS_SCALE_OUT: אופציונלי: זמן ההמתנה בשניות בין יצירה או מחיקה של צומת במאגר הקריאה, כמו
180. נדרש פרק זמן מינימלי של 60 שניות בין הצגת מודעות. ערך ברירת המחדל הוא 600 שניות. - COOLDOWN_SECONDS_SCALE_IN: אופציונלי: זמן ההמתנה בשניות בין יצירה או מחיקה של צומת במאגר הקריאה, כמו
180. נדרש פרק זמן מינימלי של 60 שניות בין הצגת מודעות. ערך ברירת המחדל הוא 600 שניות. - TARGET_METRIC_1: מדד היעד שרוצים להשתמש בו, כמו המדדים הבאים:
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1: הערך שרוצים להקצות למדד היעד שצוין קודם. בדוגמה הזו, למדד היעד
AVERAGE_DB_CONNECTIONSמוקצה הערך50.
REST v1
כדי להפעיל קבוצת קריאה קיימת עם שינוי גודל אוטומטי, משתמשים בשיטת PATCH.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע.
- INSTANCE_ID: המזהה של המכונה שמשויכת למאגר הקריאה.
- MAX_NODE_COUNT: המספר המקסימלי של צמתים במאגר הקריאה שרוצים להשתמש בהם, למשל
10. - MIN_NODE_COUNT: מספר הצמתים המינימלי במאגר הקריאה שרוצים להשתמש בו, למשל
2. - COOLDOWN_SECONDS: אופציונלי: זמן ההמתנה בשניות בין יצירה או מחיקה של צומת במאגר הקריאה, כמו
180. - SCALE_IN_DISABLED: אופציונלי: מאפשר להשבית את ההתנהגות של הקטנת המאגר לקריאה. כדי להשבית את ההקטנה של מאגר הקריאה, מגדירים את הערך ל-
true. - TARGET_METRIC_1: מדד היעד שרוצים להשתמש בו, כמו המדדים הבאים:
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1: הערך שרוצים להקצות למדד היעד שצוין קודם. בדוגמה הזו, למדד היעד
AVERAGE_DB_CONNECTIONSמוקצה הערך50.
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"settings": {
"readPoolAutoScaleConfig": {
"enabled": true,
"minNodeCount": MIN_NODE_COUNT,
"maxNodeCount": MAX_NODE_COUNT,
"scaleOutCooldownSeconds": COOLDOWN_SECONDS,
"disableScaleIn": SCALE_IN_DISABLED,
"targetMetrics": [
{
"metric": "TARGET_METRIC_1",
"targetValue": VALUE_1
}
]
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"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
כדי להפעיל קבוצת קריאה קיימת עם שינוי גודל אוטומטי, משתמשים בשיטת PATCH.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע.
- INSTANCE_ID: המזהה של המכונה שמשויכת למאגר הקריאה.
- MAX_NODE_COUNT: המספר המקסימלי של צמתים במאגר הקריאה שרוצים להשתמש בהם, למשל
10. - MIN_NODE_COUNT: מספר הצמתים המינימלי במאגר הקריאה שרוצים להשתמש בו, למשל
2. - COOLDOWN_SECONDS: אופציונלי: זמן ההמתנה בשניות בין יצירה או מחיקה של צומת במאגר הקריאה, כמו
180. - SCALE_IN_DISABLED: אופציונלי: מאפשר להשבית את ההתנהגות של הקטנת המאגר לקריאה. כדי להשבית את ההקטנה של מאגר הקריאה, מגדירים את הערך ל-
true. - TARGET_METRIC_1: מדד היעד שרוצים להשתמש בו, כמו המדדים הבאים:
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1: הערך שרוצים להקצות למדד היעד שצוין קודם. בדוגמה הזו, למדד היעד
AVERAGE_DB_CONNECTIONSמוקצה הערך50.
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"settings": {
"readPoolAutoScaleConfig": {
"enabled": true,
"minNodeCount": MIN_NODE_COUNT,
"maxNodeCount": MAX_NODE_COUNT,
"scaleOutCooldownSeconds": COOLDOWN_SECONDS,
"disableScaleIn": SCALE_IN_DISABLED,
"targetMetrics": [
{
"metric": "TARGET_METRIC_1",
"targetValue": VALUE_1
}
]
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"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 sql instances patch INSTANCE_NAME --no-auto-scale-enabled
מחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_NAME: שם המכונה שמשויך למאגר הקריאה שרוצים לשנות.
REST v1
כדי להשבית את שינוי הגודל האוטומטי של מאגר הקריאה, משתמשים בשיטת PATCH.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע.
- INSTANCE_ID: המזהה של המכונה שמשויכת למאגר הקריאה.
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"settings":{
"readPoolAutoScaleConfig":{
"enabled": false
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
כדי להשבית את שינוי הגודל האוטומטי של מאגר הקריאה, משתמשים בשיטת PATCH.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע.
- INSTANCE_ID: המזהה של המכונה שמשויכת למאגר הקריאה.
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
תוכן בקשת JSON:
{
"settings":{
"readPoolAutoScaleConfig":{
"enabled": false
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
הצגת המדדים
כדי לראות מדדים רלוונטיים של מאגר הקריאה, אפשר להשתמש בתובנות לגבי המערכת.
ב-AVERAGE_CPU_UTILIZATION, אפשר לעיין בתרשים המדדים המרכזיים של ניצול המעבד.
במקרה של AVERAGE_DB_CONNECTIONS, אפשר לעיין בתרשים של מדד המפתח 'חיבורים לכל מסד נתונים'
.
מעקב אחר פעולות של התאמה אוטומטית לעומס (autoscaling) של מאגר קריאה
כשמתקיימים התנאים להפעלת אירוע של שינוי גודל אוטומטי של מאגר קריאה, מתבצעת פעולה במופע.UPDATE אפשר לראות את הפעולה הזו במסוף Google Cloud .
יכולות לחלוף 10 דקות או יותר עד שהפעולות של שינוי גודל מאגר הקריאה יחולו על המופע. חיבורים קיימים לא יועברו לצמתים חדשים שנוספו למאגר לקריאה, כלומר רק חיבורים חדשים יושפעו מהתאמה אוטומטית לעומס של מאגר הקריאה.
בזמן שהפעולה של התאמה אוטומטית לעומס פועלת במאגר הקריאה, צריך להמתין עד שהיא תסתיים לפני שמריצים עדכונים אחרים במאגר הקריאה או במכונה הראשית. אם מנסים להריץ בקשות מקבילות, יכול להיות שתופיע הודעת השגיאה הבאה:
Operation failed because another operation was already in progress.
אפשר לבדוק את המכונה של מאגר הקריאה ולראות את השינוי במספר הצמתים:
gcloud sql instances describe READ_POOL_NAME | grep nodeCount
מחליפים את מה שכתוב בשדות הבאים:
- READ_POOL_NAME: השם של מאגר הקריאה שעבורו רוצים לקבל מידע.
יומני ביקורת של אירועים במערכת
אפשר גם לראות את הודעת יומן הביקורת של אירוע המערכת שמשויכת לשיטה cloudsql.instances.readPoolAutoScale, שמכילה את מספר הצמתים הישן והחדש.