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

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

סקירה כללית

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

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

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

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

תמחור

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

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

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

שמירת נתונים

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

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

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

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

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

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

כדי להציג את הדף 'תובנות לגבי נעילות ועסקאות', נדרשות ההרשאות הבאות בתפקיד Cloud Spanner Database Reader (roles/spanner.databaseReader):

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

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

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

  • צריכה להיות לכם הרשאה Cloud Spanner Viewer‏(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, כפי שמוצג בבורר הזמן בפינה השמאלית העליונה של לוח הבקרה 'תובנות לגבי עסקאות'.

בלוח הבקרה מוצגים התרשימים הבאים:

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

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

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

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

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

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

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

כדי לסנן את הנתונים בטבלה:

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

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

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

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

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

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

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

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

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

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

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

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

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