זיהוי טרנזקציות שעלולות לגרום לזמני אחזור ארוכים

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

סקירה כללית

כדי להבטיח עקביות של כמה טרנזקציות בו-זמנית, Spanner משתמש בנעילות כדי לשלוט בגישה לנתונים. תחרות חסימה מתרחשת כשהרבה טרנזקציות דורשות גישה תכופה לאותה נעילה, מה שמוביל לזמני אחזור ארוכים. בלי ממשק חזותי, יכול להיות קשה לזהות את הטרנזקציות הבעייתיות שמובילות למספר גבוה של בעיות בתחרות על נעילות.

פעולות ב-Spanner מקבלות נעילות כשהן חלק מעסקת קריאה-כתיבה. עסקאות לקריאה בלבד לא רוכשות נעילות.

‫Spanner עוזר לכם לזהות עסקאות שמובילות לזמני אחזור גבוהים. לשם כך, הוא מנחה אתכם בשלבים הבאים:

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

תמחור

אין עלות נוספת על תובנות לגבי נעילות או תובנות לגבי עסקאות.

הגדרות אזוריות

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

שמירת נתונים

התקופה המקסימלית לשמירת הנתונים שמוצגים בלוחות הבקרה 'תובנות לגבי נעילה' ו'תובנות לגבי עסקאות' היא 30 יום. לגבי תרשימים, הנתונים מאוחזרים מטבלאות SPANNER_SYS.*, שבהן תקופת השמירה המקסימלית היא 30 יום.

מידע נוסף על הטבלאות האלה ועל שמירת הנתונים מופיע במאמרים נתוני נעילה ונתוני עסקאות.

התפקידים הנדרשים

תצטרכו תפקידים והרשאות שונים ב-IAM בהתאם לסוג המשתמש: משתמש IAM או משתמש עם בקרת גישה ברמת גרנולריות גבוהה.

משתמש בניהול זהויות והרשאות גישה (IAM)

כדי לקבל את ההרשאות שדרושות בשביל להציג את הדף Lock and Transaction insights (תובנות לגבי נעילה ועסקאות), אתם צריכים לבקש מהאדמין לתת לכם את תפקידי ה-IAM הבאים במופע:

כדי לצפות בדף תובנות נעילה וטרנזקציות, צריך את ההרשאות הבאות בתפקיד קורא מסדי נתונים ב-Cloud Spanner (roles/spanner.databaseReader):

  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.select
  • spanner.sessions.create

משתמש עם בקרת גישה פרטנית

אם אתם משתמשים בבקרת גישה פרטנית, ודאו שאתם:

  • צפייה ב-Cloud Spanner(roles/spanner.viewer)
    • יש להם רק הרשאות של בקרת גישה פרטנית, והם מקבלים את תפקיד המערכת spanner_sys_reader או אחד מתפקידי החברים שלו.
  • בדף הסקירה הכללית של מסד הנתונים, בוחרים את spanner_sys_reader או את אחד מתפקידי החברים בתור התפקיד הנוכחי במערכת.

מידע נוסף זמין במאמרים מידע על בקרת גישה ברמת פירוט גבוהה ו תפקידים במערכת של בקרת גישה ברמת פירוט גבוהה.

בדיקה של עלייה פתאומית בזמני האחזור באמצעות Spanner Monitoring

אפשר להשתמש ב-Cloud Monitoring כדי להגדיר התראות לגבי מדדים שחורגים מספי ערך שצוינו לכל הבקשות.

אם אתם מקבלים התראה על עלייה חדה בזמני האחזור של מכונה, אתם יכולים לאשר אותה במרכז הבקרה של Spanner Monitoring, שבו מוצגים תרשימים של מדדים חשובים שונים. בתרשים זמן האחזור אפשר לראות זמני אחזור ארוכים באחוזון ה-50 ובאחוזון ה-99.

כדי לאשר עלייה חדה בחביון הכתיבה באחוזון ה-99, פועלים לפי השלבים הבאים:

  1. נכנסים לדף Spanner Instances במסוף Google Cloud .

    כניסה לדף Spanner instances

  2. לוחצים על השם של המכונה.

    במסוף Google Cloud מוצגת סקירה כללית של המופע.

  3. בתפריט הניווט, לוחצים על מעקב.

    במסוף Google Cloud מוצגים תרשימים של נתונים לגבי המופע.

  4. בתרשים Latency, מגדירים את Function ל-Write ואת Percentile ל-99th.

  5. בודקים את התרשים המעודכן כדי לראות אם יש בו עליות חדות.

תרשים שמציג את זמני האחזור של פעולות כתיבה באחוזון ה-99

אם אתם רואים שאין עלייה חדה בניצול המעבד, אבל יש עלייה חדה בשגיאות בפעולות לשנייה, סביר להניח שהעלייה החדה בחביון נובעת מהתנגשויות נעילה.

בדיקת בעיות של תחרות על נעילה באמצעות תובנות לגבי נעילות

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

בדיקה של זמן המתנה גבוה לנעילה

כדי לבדוק אם יש זמן המתנה ארוך לנעילה, פועלים לפי השלבים הבאים:

  1. בתפריט הניווט, לוחצים על תובנות לגבי מנעולים.

    במסוף Google Cloud מוצג התרשים Total lock wait, שבו אפשר לראות את זמן ההמתנה לנעילה של כל מסד נתונים במופע, בשניות של המתנה לנעילה לדקה.

    כברירת מחדל, הנתונים שמוצגים הם של 1 hour, כמו שמוצג בבורר הזמן בפינה השמאלית העליונה של לוח הבקרה 'תובנות לגבי נעילה'. כדי לראות נתונים לטווח רחב יותר, בוחרים באפשרות אחרת, כמו 1 day.

    מידע נוסף זמין במאמר בנושא עבודה עם תרשימים.

  2. בתפריט הנפתח Databases (מסדי נתונים) בחלק העליון, בוחרים את מסד הנתונים שבו מוצג הזמן הכי ארוך להמתנה לנעילה.

    התרשים Total lock wait מתעדכן כדי להציג נתונים רק לגבי מסד הנתונים שנבחר.

    בנוסף, בתרשים אחר, Lock wait per row range, מוצגים גרפים של זמן ההמתנה לנעילה לפי טווחי שורות.

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

מרכז הבקרה לתובנות לגבי נעילה

ניתוח נתוני ההמתנה לנעילה

בטבלה Lock Insights מוצגות העמודות הבאות מטבלאות המערכת של SPANNER_SYS.LOCK_STATS:

  • מפתח התחלה של טווח שורות: מפתח השורה שבה התרחשה ההתנגשות בנעילה. כשההתנגשות כוללת טווח של שורות, הערך מייצג את מפתח ההתחלה של הטווח. סימן פלוס (+) מציין טווח.
  • המתנה לנעילה: משך הזמן הכולל של ההמתנה לנעילה, שמוצג באופן חזותי באמצעות פס אופקי. כברירת מחדל, הטבלה משתמשת בעמודה הזו למיון, ומציגה בראש הטבלה את מפתח ההתחלה של טווח השורות עם זמן ההמתנה הכי ארוך לנעילה.
  • המתנה לנעילה (שניות): זמן ההמתנה המצטבר לנעילה של קונפליקטים של נעילה שנרשמו לכל העמודות בטווח של מפתח השורה, בשניות.
  • המתנה לנעילה (%): זמן ההמתנה של התנגשויות הנעילה שנרשמו לכל העמודות בטווח מפתחות השורות, כאחוז מזמן ההמתנה הכולל לנעילה של כל טווחי מפתחות השורות במסד הנתונים.

כדי ליצור קורלציה בין הנתונים בתרשים Lock wait per row range לבין הנתונים בטבלה, בוחרים קו. השורה הרלוונטית תודגש. לחלופין, מסמנים את תיבת הסימון של שורה בטבלה כדי לראות את הקו שקשור אליה בתרשים.

טבלת התובנות לגבי נעילה

כדי לסנן את הנתונים בטבלה, מבצעים את הפעולות הבאות:

  1. לוחצים על השדה שליד מסנן.

  2. בוחרים מאפיין, בוחרים אופרטור ומציינים ערך.

בטבלה מוצגים נתונים שתואמים למסנן.

צפייה בדוגמאות לבקשות נעילה

בחלונית Sample lock requests מוצגים פרטים על בקשות נעילה לדוגמה מעסקאות מתחרות.

כדי לראות מידע לדוגמה על בקשת נעילה של מפתח התחלה של טווח שורות, לוחצים על הקישור הרלוונטי בטבלה.

בטבלה מוצגות עמודות המידע הבאות:

  • שם עמודה לדוגמה: העמודה שבה אירעה ההתנגשות בנעילה בטווח מפתחות השורות.
  • מצב נעילה: מצב הנעילה המבוקש.
  • הצגת עסקאות: קישור לדף תובנות לגבי עסקאות, שבו מוצגות העסקאות שעשויות להתחרות על נעילות.

דף הפרטים של התובנות לגבי נעילת המסך

זיהוי עסקאות מתחרות באמצעות תובנות לגבי עסקאות

לוח הבקרה 'תובנות לגבי עסקאות' עוזר לכם לראות את זמן האחזור בעסקאות במופע או במסד נתונים נבחר. הוא יכול לעזור לכם לזהות את הטרנזקציות שעלולות לגרום לזמני אחזור ארוכים בגלל תחרות על נעילות.

צפייה בערכי השהייה של עסקאות

כדי לראות את זמן האחזור של העסקאות, פועלים לפי השלבים הבאים:

  1. בתפריט הניווט שמימין, לוחצים על תובנות לגבי עסקאות.

  2. בתפריט הנפתח Databases (מסדי נתונים) בחלק העליון, בוחרים את מסד הנתונים שבו מוצג הזמן הכי ארוך להמתנה לנעילה.

    לחלופין, בלוח הבקרה 'תובנות לגבי נעילה', לוחצים על הצגת טרנזקציות כדי לסנן טרנזקציות שקוראות או כותבות לעמודה ספציפית של דוגמה.

    כברירת מחדל, הנתונים שמוצגים הם של 1 hour, כפי שמוצג בבורר הזמן בפינה השמאלית העליונה של לוח הבקרה 'תובנות לגבי עסקאות'.

במרכז הבקרה מוצגים התרשימים הבאים:

  • בתרשים Average latency (all transactions) מוצג זמן האחזור של כל הטרנזקציות במכונה.

  • בתרשים חביון ממוצע (לכל עסקה) מוצג החביון של כל עסקה במסד הנתונים שנבחר.

לוח הבקרה 'תובנות לגבי עסקאות'

ניתוח נתוני העסקאות

בטבלה שמתחת לתרשימים אפשר לראות ולנתח את הנתונים של כל עסקה. בטבלה מוצגים נתוני מדדים מתוך טבלאות המערכת SPANNER_SYS.TXN_STATS בעמודות הבאות:

  • טביעת אצבע: הגיבוב של תג העסקה, אם הוא קיים. אחרת, ה-hash מחושב על סמך הפעולות שמעורבות בעסקה. הערך הוא קישור שמוביל לדף פרטי העסקה.
  • תג עסקה: תג עסקה אופציונלי לעסקה. נתונים סטטיסטיים של כמה עסקאות עם אותו מחרוזת תג מקובצים בשורה אחת עם התווית TRANSACTION_TAG שתואמת למחרוזת התג.
  • הטבלאות שהושפעו: הטבלאות שהושפעו מהטרנזקציה.
  • ‫Table.column Read: העמודות שהעסקה קוראת מהן.
  • Table.column Written: העמודות שהטרנזקציה כתבה אליהן.
  • חביון ממוצע (שניות): הזמן הממוצע שלוקח לבצע את העסקה. כברירת מחדל, הטבלה ממוינת לפי העמודה הזו בסדר יורד.

כדי ליצור קורלציה בין הנתונים בגרף החביון הממוצע (לכל עסקה) לבין הנתונים בטבלה, בוחרים קו בגרף. השורה המתאימה בטבלה תודגש.

כדי לסנן את הנתונים בטבלה, מבצעים את הפעולות הבאות:

  1. לוחצים על לצד סינון.

  2. בוחרים מאפיין, בוחרים אופרטור ומציינים ערך.

בטבלה מוצגים נתונים שתואמים למסנן.

טבלת התובנות לגבי העסקה

צפייה במידע מפורט על עסקה

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

מופיע הדף פרטי העסקה. בנוסף לטבלת הפרטים בחלק העליון, מוצג המידע הבא:

  • עמודה שבה מוצגים ערכים מספריים לכל אחד מהמדדים הבאים:

    • Average bytes: קצב הבייטים הממוצע שנכתב על ידי הטרנזקציה, בבייטים לדקה.
    • חביון ממוצע: מספר השניות הממוצע שחלף מהפעולה הראשונה בעסקה ועד לאישור או לביטול שלה.
    • Average commit latency: הזמן הממוצע בשניות לביצוע פעולת ה-commit.
    • מספר הניסיונות הכולל: שיעור הניסיונות הממוצע לעסקה, בניסיונות לדקה. מידע נוסף על מרווחי זמן זמין במאמר בנושא נתונים סטטיסטיים של עסקאות.
    • מספר הביטולים הכולל: שיעור הניסיונות הממוצע לביצוע עסקאות שבוטלו, בביטולים לדקה, כולל ניסיונות שבוטלו לפני הפעלת השיטה לאישור העסקה. מידע נוסף על מרווחים זמין במאמר נתונים סטטיסטיים של טרנזקציות.
  • תרשימים שמציגים את הערכים האלה. בתרשים Total attempts and aborts מוצג שיעור ניסיונות ההעברה (בניסיונות לדקה) והביטולים (בביטולים לדקה) בכל דקה. כדי להציג את מספר הניסיונות לביצוע טרנזקציות ואת מספר הביטולים לפי דקה, המסוף Google Cloud שולח שאילתה לטבלה SPANNER_SYS.TXN_STATS_TOP_*שמכסה בצורה הטובה ביותר את טווח התאריכים שנבחר (_MINUTE,‏ _10MINUTE או _HOUR). לאחר מכן, המסוף Google Cloud מחלק את הערכים בעמודה ATTEMPT_COUNT ובעמודה COMMIT_ABORT_COUNT מהטבלה שנבחרה במשך הזמן של המרווח בדקות (1,‏ 10 או 60) כדי להציג את השיעור לדקה. מידע נוסף על מרווחים זמין במאמר נתונים סטטיסטיים של טרנזקציות.

    בנוסף, בתרשים משתתפים בממוצע מוצג המספר הממוצע של משתתפים בכל ניסיון ביצוע.

דף הפרטים של התובנות לגבי עסקאות

בודקים אם אפשר לבצע אופטימיזציה של צורת העסקה כדי לצמצם את זמן האחזור. כדאי ליישם את השיטות המומלצות כדי לצמצם את התחרות על נעילת משאבים.

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