הכלי להמלצות של Cloud SQL לניצול גבוה של מזהי עסקאות יוצר באופן יזום המלצות שיעזרו לכם להימנע מבעיות פוטנציאליות של מעבר ממזהה עסקה אחד למזהה עסקה אחר במכונות של Cloud SQL ל-PostgreSQL. ההמלצה לשימוש גבוה במזהה טרנזקציה ב-Cloud SQL נתמכת רק במופעים של מהדורת Cloud SQL Enterprise Plus.
אפשר ליישם את ההמלצה הזו כשמופיעה מגמה של בעיה במזהה עסקה במכונה של Cloud SQL. בדף הזה מוסבר איך פועל שירות ההמלצות של Cloud SQL לשימוש גבוה במזהי טרנזקציות, ואיך אפשר להשתמש בו.
איך זה עובד
מזהה עסקה מוקצה כשהעסקה מתחילה, והוא קפוא עד שהעסקה עוברת דחיסה. המדד 'ניצול מזהה עסקה' הוא מספר העסקאות שלא נמחקו (שהוקצו פחות אלה שהוקפאו), שמוצג כשבר מתוך הערך המקסימלי של 2 מיליארד. בהגדרות ברירת המחדל של PostgreSQL, כשתהליכי ה-vacuum מתבצעים בצורה אופטימלית וללא הפרעה, ברוב מסדי הנתונים מתבצע ניצול של מזהי העסקאות באזור של כ-10%. אפשר לראות רמות גבוהות יותר של ניצול מזהי עסקאות במסדי נתונים עמוסים שבהם עומסי עבודה רגילים מקבלים לעיתים קרובות עדיפות על פני פעולת ה-vacuum. אם מגמת השימוש במזהי העסקאות היא של ערכים גבוהים מאוד (80% ומעלה), יכול להיות שהמסד נתונים נמצא בסיכון של מיצוי מזהי העסקאות. שימוש במזהה עסקה שמגיע ל-100% נקרא מעבר של מזהה עסקה. אחרי שאחוז הניצול של מזהה הטרנזקציה מגיע ל-100%, מערכת PostgreSQL מפסיקה לקבל שאילתות כתיבה.
שירות ההמלצות לניצול גבוה של מזהי טרנזקציות ב-Cloud SQL מנתח את הניצול של מזהי טרנזקציות במכונה של Cloud SQL ל-PostgreSQL.
אם אחוז הניצול של מזהה העסקה הוא 80% או יותר, מומלץ לבצע פעולות כדי למנוע מצב של חזרה למזהה עסקה קודם.
תמחור
ההמלצות לשימוש במזהי טרנזקציות ב-Cloud SQL זמינות ברמת התמחור Standard של Recommender.
לפני שמתחילים
כדי לראות המלצות ותובנות, צריך לבצע את הפעולות הבאות:
- כדי לקבל את ההרשאות לצפייה בתובנות ובהמלצות ולעבודה איתן, צריך לוודא שיש לכם את התפקידים הנדרשים.
מידע נוסף על תפקידים זמין במאמרים הסבר על תפקידים ומתן הרשאות IAM.Tasks תפקידים לצפייה בהמלצות אחד מהתפקידים הבאים: recommender.cloudsqlViewerאוcloudsql.viewer.יישום ההמלצות אחד מהתפקידים האלה: recommender.cloudsqlAdmin,cloudsql.editorאוcloudsql.admin. מפעילים את Recommender API, אם הוא עדיין לא מופעל.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
רשימת המלצות לשיפור הביצועים של מופע
אפשר לראות את ההמלצות לשיפור הביצועים של מופע באמצעות Google Cloud המסוף, gcloud CLI או Recommender API.
ההמלצות לשיפור הביצועים של מופע מוצגות רק אם יש לכם מופעים שמתקרבים למצב של גלישת מזהה עסקה.
המסוף
כדי להציג רשימת המלצות לגבי ביצועי מכונה באמצעות מסוףGoogle Cloud , פועלים לפי השלבים הבאים:
נכנסים לדף Cloud SQL Instances.
לוחצים על הצגת הכול בבאנר ההמלצות בנושא מניעת גלישת מזהה העסקה.
אפשר גם לפעול לפי השלבים הבאים:
עוברים אל Active Assist. מומלץ לעיין גם במאמר איך מתחילים להשתמש בדף ההמלצות.
בכרטיס Improve Cloud SQL Instance Performance (שיפור הביצועים של מכונת Cloud SQL), לוחצים על View all (הצגת הכול).
בוחרים את המקרים עם ההמלצה Prevent transaction ID wraparound (מניעת חזרה למספור התחלתי של מזהי עסקאות).
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%. Subtype: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION |
כדי למנוע מצב שבו מזהה העסקה יחזור לתחילת הטווח במכונות Cloud SQL. Subtype: 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 המלצות