הכלי להמלצות של Cloud SQL בנושא ניצול גבוה של מזהי עסקאות יוצר באופן יזום המלצות שיעזרו לכם להימנע ממצב של חזרה למזהי עסקאות קודמים במופעים של Cloud SQL ל-PostgreSQL. ההמלצה לגבי ניצול גבוה של מזהי טרנזקציות ב-Cloud SQL נתמכת רק במכונות במהדורת Cloud SQL Enterprise Plus.
אפשר ליישם את ההמלצה הזו כשמופע של Cloud SQL מתקרב לבעיה של גלישת מזהה עסקה. בדף הזה מוסבר איך פועל הכלי להמלצות לשימוש גבוה במזהי טרנזקציות ב-Cloud SQL, ואיך אפשר להשתמש בו.
איך זה עובד
מזהה עסקה מוקצה כשהעסקה מתחילה, והוא קפוא עד שהעסקה עוברת דחיסה. השימוש במזהה עסקה הוא מספר העסקאות שלא נמחקו (שהוקצו פחות אלה שהוקפאו) שמוצג כשבר מתוך הערך המקסימלי של 2 מיליארד. בהגדרות ברירת המחדל של PostgreSQL, כשתהליכי ה-vacuum מתבצעים בצורה אופטימלית וללא הפרעות, ברוב מסדי הנתונים מתבצע שימוש במזהי עסקאות באזור של כ-10%. אפשר לראות רמות גבוהות יותר של ניצול מזהי עסקאות במסדי נתונים עמוסים, שבהם עומסי עבודה רגילים מקבלים לעיתים קרובות עדיפות על פני פעולות ניקוי. אם מגמת השימוש במזהי העסקאות היא לכיוון ערכים גבוהים מאוד (80% ומעלה), יכול להיות שהמסד נתונים נמצא בסיכון של מיצוי מזהי העסקאות. שימוש במזהה עסקה שמגיע ל-100% נקרא מעבר ממזהה עסקה אחד למזהה עסקה אחר. אחרי שאחוז הניצול של מזהה העסקה מגיע ל-100%, מערכת PostgreSQL מפסיקה לקבל שאילתות כתיבה.
הכלי להמלצות לשימוש גבוה במזהי טרנזקציות ב-Cloud SQL מנתח את השימוש במזהי טרנזקציות במופע של Cloud SQL ל-PostgreSQL.
אם אחוז הניצול של מזהי העסקאות הוא 80% או יותר, מומלץ לבצע פעולות כדי למנוע מצב של חזרה למזהי עסקאות קודמים.
תמחור
ההמלצות לשימוש במזהי טרנזקציות ב-Cloud SQL זמינות ברמת התמחור הרגילה של Recommender.
לפני שמתחילים
כדי לראות המלצות ותובנות, צריך לבצע את הפעולות הבאות:
- כדי לקבל את ההרשאות לצפייה בתובנות ובהמלצות ולעבודה איתן, צריך לוודא שיש לכם את התפקידים הנדרשים.
מידע נוסף על תפקידים זמין במאמרים הסבר על תפקידים ומתן הרשאות IAM.Tasks תפקידים לצפייה בהמלצות אחד מהתפקידים הבאים: recommender.cloudsqlViewerאוcloudsql.viewer.יישום ההמלצות אחת מההרשאות הבאות: recommender.cloudsqlAdmin,cloudsql.editorאוcloudsql.admin. -
Enable the Recommender API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
הצגת רשימה של המלצות לשיפור הביצועים של מכונה
אפשר לראות את ההמלצות לשיפור הביצועים של מופע באמצעות מסוף Google Cloud , gcloud CLI או Recommender API.
ההמלצות לשיפור הביצועים של מופע מוצגות רק אם יש לכם מופעים שמתקרבים למצב של גלישת מזהה עסקה.
המסוף
כדי להציג רשימה של המלצות לגבי ביצועי מכונות באמצעות מסוףGoogle Cloud , פועלים לפי השלבים הבאים:
נכנסים לדף Cloud SQL Instances.
לוחצים על הצגת הכול בבאנר ההמלצות בנושא מניעת גלישת מזהה העסקה.
אפשר גם לפעול לפי השלבים הבאים:
עוברים אל Active Assist. מומלץ לעיין גם במאמר איך מתחילים להשתמש בדף ההמלצות.
בכרטיס Improve Cloud SQL Instance Performance (שיפור הביצועים של מכונת Cloud SQL), לוחצים על View all (הצגת הכול).
בוחרים את המקרים שבהם מופיעה ההמלצה מניעת גלישת מזהה עסקה.
CLI של gcloud
כדי להציג רשימה של המלצות לשיפור הביצועים של המכונה באמצעות gcloud CLI, מריצים את הפקודה gcloud recommender recommendations list באופן הבא:
gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=LOCATION \ --recommender=google.cloudsql.instance.PerformanceRecommender \ --filter=recommenderSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
LOCATION: אזור, כמוus-central1
API
כדי להציג רשימה של המלצות לשיפור הביצועים של המכונה באמצעות Recommendations API, מפעילים את method recommendations.list באופן הבא:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilizationBestPractice/recommendations
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
LOCATION: אזור, כמוus-central1.
אם הכלי לזיהוי בעיות מזהה מקרים שבהם נעשה שימוש רב במזהה העסקה, הוא מציג אותם בטבלה עם המלצות אחרות לשיפור הביצועים. בכל שורה מוצגים מזהה המופע, המלצה קצרה, המנוע של מסד הנתונים, המיקום ותאריך הרענון האחרון.
צפייה בתובנות ובהמלצות מפורטות
אפשר לראות תובנות והמלצות מפורטות לגבי מקרים שבהם מזהה עסקה מתקרב למצב של גלישת מספרים באמצעות מסוף Google Cloud , gcloud CLI או Recommender API.
המסוף
כדי לראות תובנות והמלצות מפורטות לגבי מקרים שקרובים לסף הביצועים באמצעות מסוף Google Cloud , לוחצים על קישור ההמלצה ברשימת המקרים.
CLI של gcloud
כדי לראות תובנות והמלצות מפורטות לגבי מקרים שקרובים לסף הביצועים באמצעות gcloud CLI, מריצים את הפקודה gcloud recommender insights list באופן הבא:
gcloud recommender insights list \ --project=PROJECT_ID \ --location=LOCATION \ --insight-type=google.cloudsql.instance.PerformanceInsight \ --filter=insightSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
LOCATION: אזור, כמוus-central1.
API
כדי לראות תובנות והמלצות מפורטות לגבי מקרים שקרובים לסף הביצועים באמצעות Recommendations API, צריך לקרוא לשיטה insights.list באופן הבא:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilization/insights
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
LOCATION: אזור, כמוus-central1.
בטבלה הבאה מפורטים התובנות וההמלצות שנוצרות על ידי הכלי להמלצות לשימוש גבוה במזהה טרנזקציה ב-Cloud SQL. סוגי המשנה מופיעים בתוצאות של gcloud CLI ושל ה-API.
| תובנה | המלצה |
|---|---|
| אחוז הניצול של מזהה העסקה במופע הזה גבוה וקרוב ל-100%. תת-סוג: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION |
כדי למנוע מצב שבו מזהה העסקה יחזור לתחילת הטווח במכונות Cloud SQL. תת-סוג: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
|
יישום ההמלצות
בודקים את ההמלצות בקפידה ומבצעים אחת מהפעולות הבאות:
כדי לבדוק את ההמלצה, לוחצים על הצגת המופע. מומלץ לעיין במאמרים אופטימיזציה של הביצועים של המופע או מניעת מצב של חזרה למספרים קודמים במזהי עסקאות ולפעול לפי ההמלצות.
כדי לדחות את ההמלצה כך שהיא תודגש פחות ותופיע בצבע עמום, לוחצים על דחייה.
כדי לסגור את החלונית בלי להחיל את ההמלצה או לבטל אותה, לוחצים על ביטול.
אופטימיזציה של הביצועים של המופע
כדי לפתור את בעיית הגלישה של מזהה העסקה במופע:
מידע נוסף זמין גם בפוסט בבלוג Using VACUUM to accelerate transaction ID freezing in Cloud SQL for PostgreSQL (שימוש ב-VACUUM כדי להאיץ את הקפאת מזהה העסקה ב-Cloud SQL ל-PostgreSQL).
מניעת מצב שבו מזהה העסקה חוזר לתחילת הרצף
כדי למנוע מצב של חזרה למספרים נמוכים יותר במזהה העסקה של מופע, מריצים את הפקודה הבאה:
SELECT * FROM google_vacuum_mgmt.pg_fix_wraparound();
פלט לדוגמה:
postgres=> select * from google_vacuum_mgmt.pg_fix_wraparound(); -[ RECORD 1 ]-----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- issue_description | Cloud SQL for PostgreSQL has detected an open prepared transaction on your instance which is blocking VACUUM. Monitor the transaction ID utilization and commit or rollback the transaction, as needed. query | ROLLBACK PREPARED 'trx_id_pin'; or COMMIT PREPARED 'trx_id_pin'; recommendation | To commit a prepared transaction, you must be connected as the same user that originally executed the transaction: postgres insights | Transaction ID Utilization: 88.49%
המאמרים הבאים
- מעקב אחרי זמינות הדיסק
- זיהוי מכונות Cloud SQL בלי פעילות
- הקטנת מספר המכונות ב-Cloud SQL שהוקצו להן יותר מדי משאבים
- Google Cloud המלצות