בדף הזה מוסבר איך להשתמש בתובנות לגבי נעילות ובתובנות לגבי עסקאות כדי לזהות עסקאות שמובילות לזמני אחזור ארוכים.
סקירה כללית
כדי להבטיח את העקביות של כמה טרנזקציות בו-זמניות, מערכת Spanner משתמשת בנעילות כדי לשלוט בגישה לנתונים. מצב של תחרות על נעילה מתרחש כשנדרשת גישה תכופה לאותה נעילה בהרבה טרנזקציות, מה שמוביל לזמני אחזור ארוכים. בלי ממשק חזותי, יכול להיות שיידרש מאמץ רב כדי לזהות את הבעיות בעסקאות שמובילות למספר גבוה של בעיות שקשורות לתחרות על משאבים.
פעולות ב-Spanner מקבלות נעילות כשהן חלק מעסקת קריאה-כתיבה. עסקאות לקריאה בלבד לא מקבלות נעילות.
כדי לעזור לכם לזהות עסקאות שמובילות לזמני אחזור ארוכים, Spanner מנחה אתכם בשלבים הבאים:
- בודקים אם יש עלייה חדה בערכי השהיות באמצעות Spanner Monitoring.
- בדיקת בעיות שקשורות לתחרות על נעילה באמצעות תובנות לגבי נעילה.
- זיהוי עסקאות בעייתיות באמצעות תובנות לגבי עסקאות.
תמחור
אין עלות נוספת לשימוש בתובנות לגבי נעילות או בתובנות לגבי עסקאות.
הגדרות אזוריות
התובנות לגבי נעילת מוצרים והתובנות לגבי עסקאות זמינות בהגדרות אזוריות ובהגדרות של כמה אזורים.
שמירת נתונים
התקופה המקסימלית לשמירת הנתונים שמוצגים במרכזי הבקרה 'תובנות לגבי נעילה' ו'תובנות לגבי עסקאות' היא 30 ימים. בגרפים, הנתונים מאוחזרים מטבלאות SPANNER_SYS.*, שבהן תקופת השמירה המקסימלית היא 30 יום.
מידע נוסף על הטבלאות האלה ועל שמירת הנתונים זמין במאמרים נתוני נעילה ונתוני עסקאות.
התפקידים הנדרשים
אתם צריכים תפקידים והרשאות שונים ב-IAM בהתאם לסוג המשתמש שלכם: משתמש IAM או משתמש עם בקרת גישה מפורטת.
משתמש בניהול זהויות והרשאות גישה (IAM)
כדי לקבל את ההרשאות שדרושות בשביל להציג את הדף Lock and Transaction insights, אתם צריכים לבקש מהאדמין לתת לכם את תפקידי ה-IAM הבאים במופע:
-
הכול:
-
Cloud Spanner Viewer (
roles/spanner.viewer) -
Cloud Spanner Database Reader (
roles/spanner.databaseReader)
-
Cloud Spanner Viewer (
כדי להציג את הדף Lock and Transaction insights, נדרשות ההרשאות הבאות בתפקיד Cloud Spanner Database Reader (
roles/spanner.databaseReader):
spanner.databases.beginReadOnlyTransactionspanner.databases.selectspanner.sessions.create
משתמש עם בקרת גישה פרטנית
אם אתם משתמשים בבקרת גישה פרטנית, חשוב לוודא שאתם:
- צריכה להיות לכם גישה ל-Cloud Spanner
Viewer(
roles/spanner.viewer)- יש להם רק הרשאות בקרת גישה פרטנית, והוקצה להם תפקיד המערכת
spanner_sys_readerאו אחד מתפקידי החברים שלו.
- יש להם רק הרשאות בקרת גישה פרטנית, והוקצה להם תפקיד המערכת
- בדף הסקירה הכללית של מסד הנתונים, בוחרים את
spanner_sys_readerאו את אחד מתפקידי החברים בתור התפקיד הנוכחי במערכת.
מידע נוסף זמין במאמרים מידע על בקרת גישה ברמת פירוט גבוהה ו תפקידים במערכת של בקרת גישה ברמת פירוט גבוהה.
בדיקה של עלייה חדה בזמני האחזור באמצעות Spanner Monitoring
אפשר להשתמש ב-Cloud Monitoring כדי להגדיר התראות לגבי מדדים שחורגים מערכי סף שצוינו לכל הבקשות.
אם מקבלים התראה על עלייה חדה בערכי השהיות של מופע, אפשר לאשר את זה בלוח הבקרה של Spanner Monitoring, שבו מוצגים תרשימים של מדדים חשובים שונים. בתרשים זמן האחזור אפשר לראות את זמני האחזור הגבוהים באחוזון ה-50 ובאחוזון ה-99.
כדי לאשר עלייה חדה בחביון הכתיבה באחוזון ה-99, פועלים לפי השלבים הבאים:
נכנסים לדף Spanner Instances במסוף Google Cloud .
לוחצים על שם המכונה.
במסוף Google Cloud מוצגת סקירה כללית של המופע.
בתפריט הניווט, לוחצים על מעקב.
במסוף Google Cloud מוצגים תרשימים של נתונים לגבי המופע.
בתרשים Latency, מגדירים את Function ל-
Writeואת Percentile ל-99th.בודקים את התרשים המעודכן כדי לראות אם יש בו עליות חדות.

אם אתם רואים שאין עלייה חדה בניצול המעבד, אבל יש עלייה חדה בשגיאות בפעולות לשנייה, סביר להניח שהעלייה החדה בחביון נובעת מהתנגשויות על נעילת התוכן.
בדיקת בעיות של תחרות על נעילה באמצעות תובנות לגבי נעילה
מרכז הבקרה של תובנות לגבי נעילה עוזר לכם לראות את זמן ההמתנה לנעילה במופע או במסד נתונים נבחר. הוא יכול לעזור לכם לאשר אם השהיות הגבוהות נובעות ממחלוקות על נעילה.
בדיקה של זמן המתנה גבוה לנעילה
כדי לבדוק אם יש זמן המתנה ארוך לנעילה, פועלים לפי השלבים הבאים:
בתפריט הניווט, לוחצים על נעילת תובנות.
במסוף Google Cloud מוצג התרשים Total lock wait, שבו מוצג זמן ההמתנה לנעילה של כל מסד נתונים במופע.
כברירת מחדל, הנתונים שמוצגים הם של
1 hour, כמו שמוצג בבורר הזמן בפינה השמאלית העליונה של לוח הבקרה 'תובנות לגבי נעילה'. כדי לראות נתונים מטווח רחב יותר, בוחרים באפשרות אחרת, כמו1 day.מידע נוסף זמין במאמר בנושא עבודה עם תרשימים.
בתפריט Databases (מסדי נתונים) שבחלק העליון, בוחרים את מסד הנתונים שבו מוצג הזמן הכי ארוך להמתנה לנעילה.
התרשים Total lock wait מתעדכן כדי להציג נתונים רק לגבי מסד הנתונים שנבחר.
בנוסף, בתרשים אחר, Lock wait per row range, מוצגים גרפים של זמן ההמתנה לנעילה לפי טווח שורות.
לוחצים על התרשים וגוררים אותו אופקית כדי להרחיב את השעה שבה רואים עליית שיא בזמן האחזור.

ניתוח הנתונים של ההמתנה לנעילה
בטבלה Lock Insights מוצגות העמודות הבאות מטבלאות המערכת SPANNER_SYS.LOCK_STATS:
- מפתח התחלה של טווח שורות: מפתח השורה שבה התרחש העימות על הנעילה. אם הקונפליקט כולל טווח של שורות, הערך מייצג את מפתח ההתחלה של הטווח. סימן פלוס (
+) מציין טווח. - המתנה לנעילה: משך הזמן הכולל של ההמתנה לנעילה, שמוצג באופן חזותי על סרגל אופקי. כברירת מחדל, הטבלה משתמשת בעמודה הזו למיון, ומציגה את מפתח ההתחלה של טווח השורות עם זמן ההמתנה הכי גבוה לנעילה בחלק העליון.
- המתנה לנעילה (שניות): משך ההמתנה המצטבר לנעילה של קונפליקטים של נעילה שנרשמו לכל העמודות בטווח של מפתח השורה, בשניות.
- זמן המתנה לנעילה (%): זמן ההמתנה של התנגשויות הנעילה שנרשמו לכל העמודות בטווח מפתחות השורות, כאחוז מזמן ההמתנה הכולל לנעילה של כל טווחי מפתחות השורות במסד הנתונים.
כדי ליצור קורלציה בין הנתונים בתרשים Lock wait per row range לבין הנתונים בטבלה, בוחרים קו. השורה הרלוונטית מודגשת. לחלופין, מסמנים את תיבת הסימון של שורה בטבלה כדי לראות את הקו שקשור אליה בתרשים.

כדי לסנן את הנתונים בטבלה:
לוחצים על השדה שליד מסנן.
בוחרים נכס, בוחרים אופרטור ומציינים ערך.
בטבלה מוצגים נתונים שתואמים למסנן.
הצגת בקשות לדוגמה לנעילת המסך
בחלונית Sample lock requests (מדגם של בקשות נעילה) מוצגים פרטים על בקשות נעילה לדוגמה מתוך עסקאות מתחרות.
כדי לראות מידע לדוגמה על בקשת נעילה של טווח שורות, לוחצים על הקישור הרלוונטי בטבלה.
בטבלה מוצגות עמודות המידע הבאות:
- שם העמודה לדוגמה: העמודה שבה התרחש העימות של הנעילה בטווח של מפתח השורה.
- מצב נעילה: מצב הנעילה המבוקש.
- הצגת עסקאות: קישור לדף תובנות לגבי עסקאות, שבו מוצגות העסקאות שעשויות להתחרות על נעילות.
זיהוי עסקאות מתחרות באמצעות תובנות לגבי עסקאות
בלוח הבקרה 'תובנות לגבי עסקאות' אפשר לראות את זמן האחזור בעסקאות במופע או במסד נתונים נבחר. הוא יכול לעזור לכם לזהות את העסקאות שאולי גורמות לזמני אחזור ארוכים בגלל מחלוקות על נעילה.
הצגת זמן האחזור של עסקאות
כדי לראות את זמן האחזור של העסקאות, פועלים לפי השלבים הבאים:
בתפריט הניווט הימני, לוחצים על תובנות לגבי עסקאות.
בתפריט Databases (מסדי נתונים) שבחלק העליון, בוחרים את מסד הנתונים שבו מוצג הזמן הכי ארוך להמתנה לנעילה.
לחלופין, בלוח הבקרה 'תובנות לגבי נעילה', לוחצים על הצגת טרנזקציות כדי לסנן טרנזקציות שקוראות או כותבות לעמודה ספציפית של דוגמה.
כברירת מחדל, הנתונים שמוצגים הם של
1 hour, כפי שמוצג בכלי לבחירת זמן בפינה השמאלית העליונה של לוח הבקרה 'תובנות לגבי עסקאות'.
בלוח הבקרה מוצגים התרשימים הבאים:
בתרשים חביון ממוצע (כל העסקאות) מוצג החביון של כל העסקאות במופע.
בתרשים חביון ממוצע (לכל עסקה) מוצג החביון של כל עסקה במסד הנתונים שנבחר.

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

הצגת מידע מפורט על עסקה
כדי לראות מידע מפורט על עסקה, כמו העסקה עם זמן האחזור הכי גבוה, לוחצים על הקישור Fingerprint בשורה המתאימה בטבלה.
יופיע הדף פרטי העסקה. בנוסף לטבלת הפרטים שמופיעה למעלה, מוצג המידע הבא:
עמודה שבה מוצגים ערכים מספריים של כל אחד מהמדדים הבאים:
- בייטים ממוצעים: המספר הממוצע של בייטים שנכתבו על ידי העסקה.
- זמן תגובה ממוצע: מספר השניות הממוצע שחלף מהפעולה הראשונה בעסקה ועד לאישור או לביטול שלה.
- זמן האחזור הממוצע של פעולת commit: הזמן הממוצע בשניות שנדרש לביצוע פעולת ה-commit.
- מספר הניסיונות הכולל: המספר הכולל של ניסיונות ביצוע העסקה.
- מספר הביטולים הכולל: המספר הכולל של ניסיונות העסקה שבוטלו, כולל אלה שבוטלו לפני הקריאה לשיטת האישור של העסקה.
תרשימים שמציגים את הערכים האלה.
בנוסף, בתרשים Average participants מוצג המספר הממוצע של משתתפים בכל ניסיון ביצוע.

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