התאמה אוטומטית לעומס של מאגר קריאה מוסיפה או מסירה באופן אוטומטי צמתים של מאגר קריאה במאגר הקריאה, בהתאם לצורכי עומס העבודה של האפליקציה.
כדי לשלוט בהתאמה האוטומטית לעומס (automatic scaling) של מאגר הקריאה, אתם יכולים להגביל את השימוש הממוצע במעבד (CPU) במאגר הקריאה או להגביל את מספר החיבורים של הלקוחות שמורשים לגשת למאגר הקריאה. לשם כך, אתם יכולים להשתמש באחד משני מדדי היעד הבאים:
- Average CPU utilization: מאפשר להגדיר את השימוש הממוצע במעבד (CPU) שבו אתם רוצים שמאגר הקריאה יפעל. מאגר הקריאה מגדיל או מקטין את קנה המידה באופן אוטומטי, בהתאם לשימוש ב-CPU של עומס העבודה באפליקציה.
- Average database connections: מאפשר לציין את המספר הממוצע של חיבורים למסד הנתונים של הלקוח שכל צומת צריך לשרת. מאגר הקריאה מגדיל או מקטין את קנה המידה באופן אוטומטי בהתאם למספר החיבורים של הלקוחות.
כדי להחיל את מדדי היעד האלה, צריך גם להגדיר מספר מינימלי ומקסימלי של צמתים במאגר הקריאה.
כדי להפעיל התאמה אוטומטית לעומס של מאגר קריאה, אפשר להגדיר במכונה אחד או את שני מדדי היעד הבאים. אם שני המדדים פעילים, Cloud SQL מחיל את מספר הצמתים המקסימלי של מאגר הקריאה שצוין בשני המדדים.
בטבלה הבאה מפורטות המגבלות של כל מדד יעד:
| שם מדד היעד | מגבלות | מדד ציבורי קשור |
|---|---|---|
| ניצול ממוצע של המעבד (CPU) | בין 0.1 ל-0.9. | הניצול הממוצע של המעבד (CPU) (cloudsql.googleapis.com/database/cpu/utilization) בצמתים של מאגר הקריאה. |
| חיבורים ממוצעים למסד הנתונים |
בין 10 ל-32,767.
הערה: הערך המקסימלי המותר תואם לערך המקסימלי שמוגדר בדגל לניהול מסד הנתונים max_connections.
|
מייצג ממוצע של חיבורי לקוחות למסד נתונים (cloudsql.googleapis.com/database/network/connections) בצמתים של מאגר הקריאה.
|
כשהתנאים לשינוי הגודל של מאגר הקריאה מתקיימים, אפשר לראות את פעולות ההתאמה האוטומטית לעומס של מאגר הקריאה במסוף Google Cloud . כל שאר הפעולות במאגר הקריאה ובמכונה הראשית חסומות עד להשלמת ההתאמה האוטומטית לעומס של מאגר הקריאה.
קריאת המאפיינים של התאמה לעומס (autoscaling) של מאגרים
המאפיינים הבאים חלים:
- פעולות של הקטנת קנה מידה מסירות רק צומת אחד בכל פעם.
- בפעולות של הרחבה אופקית בהתאם לעומס (scale out), המערכת מוסיפה במקביל כמה צמתים שצריך.
- כברירת מחדל, המערכת מבצעת גם פעולות של צמצום וגם פעולות של הרחבה. אפשר גם לחסום פעולות של הקטנת קנה מידה על ידי השבתה ידנית שלהן (
disableScaleIn). - כברירת מחדל, תקופת צינון של 600 שניות חלה בין פעולות עוקבות של התאמה אוטומטית לעומס של מאגר קריאה. נדרשת תקופת צינון מינימלית של 60 שניות, בין אם מגדילים או מקטינים את קנה המידה.
- כשמגדירים מדד יעד, צריך גם להגדיר את המספר המינימלי (
minNodeCount) והמקסימלי (maxNodeCount) של הצמתים במאגר הקריאה שבהם רוצים להשתמש. אם אתם מפעילים התאמה אוטומטית לעומס (automatic scaling) במאגר קריאה קיים, הגודל הנוכחי של מאגר הקריאה צריך להיות בטווח שהגדרתם. - אם צמתים של מאגר קריאה צוברים שימוש גבוה יותר ב-CPU, במיוחד בגלל תקורה של שכפול או תהליכים שאינם של SQL Server בצמתים של מאגר קריאה, אז ההתאמה האוטומטית לעומס (scaling) שמבוססת על CPU מוגבלת.
מספר הצמתים המקסימלי של מאגר הקריאה לכל מכונה ראשית
אפשר להקצות עד שבע רפליקות לקריאה בלבד לכל מכונה ראשית.
המספר הכולל של רפליקות לקריאה וצומתי מאגר לקריאה שמשוכפלים מאותו מכונה ראשית לא יכול להיות גדול מ-7.
איך מחשבים את המספר המקסימלי של צמתים במאגר לקריאה בלבד לכל מכונה ראשית
מבחינה רעיונית, אפשר לחשוב על רפליקה לקריאה בלבד כצומת יחיד של מאגר קריאה.
אפשר להמיר רפליקה לקריאה בלבד למאגר לקריאה בלבד, ואז לשנות את מספר הצמתים במאגר לקריאה בלבד למספר שגדול מ-1.
לאחר מכן תוכלו להקצות התאמה אוטומטית לעומס (automatic scaling) למאגר הקריאה, כך שמספר הצמתים במאגר הקריאה יותאם באופן דינמי כלפי מעלה או מטה בהתאם לצורכי עומס העבודה.
כשמפעילים התאמה אוטומטית לעומס במאגר לקריאה בלבד, צריך לציין מספר מקסימלי תקין של צמתים במאגר לקריאה בלבד. המספר הזה, בשילוב עם מספר הרפליקות הקיימות לקריאה בלבד שמשוכפלות מאותו מאגר ראשי, או צומתי מאגר לקריאה בלבד ששייכים למאגרים אחרים לקריאה בלבד שמשוכפלים מאותו מאגר ראשי, לא יכול להיות גדול מ-7.
לדוגמה, אם למכונה הראשית יש שתי רפליקות לקריאה בלבד, מאגר קריאה אחד עם שני צמתים ומאגר קריאה שני עם התאמה לעומס (auto-scaling), המספר המקסימלי של צמתים במאגר הקריאה השני לא יכול להיות גדול מ-3.
מגבלות
המגבלות הבאות חלות:
- אם רוצים ליצור מאגר קריאה חדש או לשנות את הגודל של מאגר קריאה קיים, צריך להמתין עד שהפעולות הקודמות של היצירה ושינוי הגודל יסתיימו. ההגבלה הזו חלה על פעולות שמשויכות למאגר הקריאה, וגם על מאגרי קריאה אחרים שמשויכים לאותו מכונה ראשית. אם תנסו להריץ פעולות בו-זמנית, יכול להיות שתקבלו את הודעת השגיאה הבאה:
Operation failed because another operation was already in progress.
לפני שמתחילים
כדי ליצור מאגר קריאה, צריך לוודא שמשלימים את כל השלבים הנדרשים.
חשוב להשתמש בגרסה 544.0.0 של
gcloudואילך.חשוב להשתמש ב-Terraform provider בגרסה 7.8.0 ואילך.
יצירת מאגר קריאה עם התאמה אוטומטית לעומס (automatic scaling)
אם מציינים ערך יעד של 0.50 ל-AVERAGE_CPU_UTILIZATION, צומתי מאגר קריאה יתווספו למאגר הקריאה או יוסרו ממנו כדי לשמור על ניצול ממוצע של 0.50 או פחות של המעבד (CPU) במאגר הקריאה.
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: גרסת מסד הנתונים שבה רוצים להשתמש, למשל
SQLSERVER_2022_ENTERPRISE. - 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.
-
מגדירים את פרויקט ברירת המחדל ב- Google Cloud שבו רוצים להחיל את ההגדרות של Terraform.
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
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: גרסת מסד הנתונים שבה רוצים להשתמש, למשל
SQLSERVER_2022_ENTERPRISE. - MACHINE_TIER: רמת המכונה שבה רוצים להשתמש, למשל
db-perf-optimized-N-2. - FULL_NETWORK_NAME: שם הרשת שבה רוצים להשתמש.
- MAX_NODE_COUNT: המספר המקסימלי של צומתי מאגר קריאה שרוצים שהמופע של מאגר הקריאה ישתמש בהם, למשל
7. אפשר להקצות עד שבעה צומתי מאגר קריאה לכל מכונה ראשית. מידע נוסף זמין במאמר מספר הצמתים המקסימלי. - 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: גרסת מסד הנתונים שבה רוצים להשתמש, למשל
SQLSERVER_2022_ENTERPRISE. - MACHINE_TIER: רמת המכונה שבה רוצים להשתמש, למשל
db-perf-optimized-N-2. - FULL_NETWORK_NAME: שם הרשת שבה רוצים להשתמש.
- MAX_NODE_COUNT: המספר המקסימלי של צומתי מאגר הקריאה שרוצים שהמכונה של מאגר הקריאה תשתמש בהם, למשל
7. אפשר להקצות עד שבעה צומתי מאגר קריאה לכל מכונה ראשית. מידע נוסף זמין במאמר מספר הצמתים המקסימלי. - 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"
}
הפעלה של התאמה אוטומטית לעומס במאגר קריאה קיים
אם כבר יצרתם מאגר קריאה, אתם יכולים להפעיל התאמה אוטומטית לעומס על ידי ציון הגדרת ההתאמה האוטומטית לעומס שבה אתם רוצים להשתמש.
לדוגמה, אם מציינים ערך יעד של 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: המספר המקסימלי של צומתי מאגר הקריאה שרוצים שמאגר הקריאה ישתמש בהם, למשל
7. אפשר להקצות עד 7 צומתי מאגר קריאה לכל מכונה ראשית. מידע נוסף זמין במאמר מספר הצמתים המקסימלי. - 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
כדי להפעיל התאמה אוטומטית לעומס במאגר קריאה קיים, משתמשים ב-method PATCH.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט ב- Google Cloud שמכיל את המכונה.
- INSTANCE_ID: המזהה של המכונה שמשויכת למאגר לקריאה בלבד.
- MAX_NODE_COUNT: המספר המקסימלי של צומתי מאגר הקריאה שרוצים שהמכונה של מאגר הקריאה תשתמש בהם, למשל
7. אפשר להקצות עד שבעה צומתי מאגר קריאה לכל מכונה ראשית. מידע נוסף זמין במאמר מספר הצמתים המקסימלי. - MIN_NODE_COUNT: המספר המינימלי של צומתי מאגר לקריאה שרוצים שמאגר הקריאה ישתמש בהם, למשל
2. - COOLDOWN_SECONDS: אופציונלי: זמן ההמתנה בשניות בין יצירה או מחיקה של צומת במאגר לקריאה בלבד, למשל
180. - SCALE_IN_DISABLED: אופציונלי: מאפשר להשבית את ההתנהגות של הקטנת מאגר הקריאה. כדי להשבית את צמצום מאגר הקריאה, מגדירים את הערך ל-
true. - TARGET_METRIC_1: מדד היעד שבו רוצים להשתמש, למשל:
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1: הערך שרוצים להקצות למדד היעד שציינתם קודם. בדוגמה הזו, מקצים את הערך
50למדד היעדAVERAGE_DB_CONNECTIONS.
ה-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
כדי להפעיל התאמה אוטומטית לעומס במאגר קריאה קיים, משתמשים ב-method PATCH.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט ב- Google Cloud שמכיל את המכונה.
- INSTANCE_ID: המזהה של המכונה שמשויכת למאגר לקריאה בלבד.
- MAX_NODE_COUNT: המספר המקסימלי של צומתי מאגר הקריאה שרוצים שהמכונה של מאגר הקריאה תשתמש בהם, למשל
7. אפשר להקצות עד שבעה צומתי מאגר קריאה לכל מכונה ראשית. מידע נוסף זמין במאמר מספר הצמתים המקסימלי. - MIN_NODE_COUNT: המספר המינימלי של צומתי מאגר לקריאה שרוצים שמאגר הקריאה ישתמש בהם, למשל
2. - COOLDOWN_SECONDS: אופציונלי: זמן ההמתנה בשניות בין יצירה או מחיקה של צומת במאגר לקריאה בלבד, למשל
180. - SCALE_IN_DISABLED: אופציונלי: מאפשר להשבית את ההתנהגות של הקטנת מאגר הקריאה. כדי להשבית את צמצום מאגר הקריאה, מגדירים את הערך ל-
true. - TARGET_METRIC_1: מדד היעד שבו רוצים להשתמש, למשל:
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1: הערך שרוצים להקצות למדד היעד שציינתם קודם. בדוגמה הזו, מקצים את הערך
50למדד היעדAVERAGE_DB_CONNECTIONS.
ה-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
כדי להשבית את ההתאמה האוטומטית לעומס של מאגר קריאה, משתמשים ב-method 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
כדי להשבית את ההתאמה האוטומטית לעומס של מאגר הקריאה, משתמשים ב-method 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, עיינו בתרשים מדדי המפתח של ניצול המעבד (CPU).
לגבי AVERAGE_DB_CONNECTIONS, אפשר לעיין בתרשים המדדים העיקריים של סה"כ החיבורים.
מעקב אחרי פעולות התאמה לעומס (autoscaling) של מאגר קריאה
כשהתנאים להפעלת אירוע התאמה אוטומטית לעומס (automatic scaling) של מאגר הקריאה מתקיימים, מתבצעת פעולת 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: השם של מאגר הקריאה שרוצים לקבל עליו מידע.
יומני ביקורת של אירועי מערכת
אפשר גם לראות את הודעת יומן הביקורת של אירוע המערכת שמשויכת ל-method cloudsql.instances.readPoolAutoScale, שמכילה את מספר הצמתים הישן והחדש.