מניעת מצב שבו מזהה העסקה חוזר לתחילת הרצף

הכלי להמלצות של 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.

לפני שמתחילים

כדי לראות המלצות ותובנות, צריך לבצע את הפעולות הבאות:

  • כדי לקבל את ההרשאות לצפייה בתובנות ובהמלצות ולעבודה איתן, צריך לוודא שיש לכם את התפקידים הנדרשים.
    Tasks תפקידים
    לצפייה בהמלצות אחד מהתפקידים הבאים: recommender.cloudsqlViewer או cloudsql.viewer.
    יישום ההמלצות אחת מההרשאות הבאות: recommender.cloudsqlAdmin,‏ cloudsql.editor או cloudsql.admin.
    מידע נוסף על תפקידים זמין במאמרים הסבר על תפקידים ומתן הרשאות IAM.
  • 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

הצגת רשימה של המלצות לשיפור הביצועים של מכונה

אפשר לראות את ההמלצות לשיפור הביצועים של מופע באמצעות מסוף Google Cloud , gcloud CLI או Recommender API.

ההמלצות לשיפור הביצועים של מופע מוצגות רק אם יש לכם מופעים שמתקרבים למצב של גלישת מזהה עסקה.

המסוף

כדי להציג רשימה של המלצות לגבי ביצועי מכונות באמצעות מסוףGoogle Cloud , פועלים לפי השלבים הבאים:

  1. נכנסים לדף Cloud SQL Instances.

    כניסה לדף Cloud SQL Instances

  2. לוחצים על הצגת הכול בבאנר ההמלצות בנושא מניעת גלישת מזהה העסקה.

אפשר גם לפעול לפי השלבים הבאים:

  1. עוברים אל Active Assist. מומלץ לעיין גם במאמר איך מתחילים להשתמש בדף ההמלצות.

    כניסה אל Active Assist

  2. בכרטיס Improve Cloud SQL Instance Performance (שיפור הביצועים של מכונת Cloud SQL), לוחצים על View all (הצגת הכול).

  3. בוחרים את המקרים שבהם מופיעה ההמלצה מניעת גלישת מזהה עסקה.

‫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

יישום ההמלצות

בודקים את ההמלצות בקפידה ומבצעים אחת מהפעולות הבאות:

אופטימיזציה של הביצועים של המופע

כדי לפתור את בעיית הגלישה של מזהה העסקה במופע:

  1. מאתרים את מסד הנתונים והטבלה שגורמים לבעיה.

  2. בודקים את מדדי השימוש במזהה העסקה במופעי מסד הנתונים.

  3. בודקים אם יש מזהה עסקה תקוע.

  4. הסרת חסימות של VACUUM.

  5. בודקים את המהירות של VACUUM ומגבירים אותה.

מידע נוסף זמין גם בפוסט בבלוג 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%

המאמרים הבאים