חיפוש נקודות חמות במסד הנתונים

במאמר הזה מוסבר איך להשתמש בלוח הבקרה של Hotspot insights כדי לזהות נקודות חמות במסד הנתונים של Spanner.

סקירה כללית של התובנות לגבי נקודות העניין

נקודות חמות גורמות לזמן אחזור במסד הנתונים של Spanner. בלוח הבקרה של Hotspot insights אפשר לזהות את הפיצולים שמושפעים מנקודות חמות. כדי לבדוק אם נקודות חמות גורמות לעיכוב, ואם כן, איך לפתור את הבעיה, פועלים לפי השלבים הבאים:

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

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

תמחור

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

שמירת נתונים

מדיניות שמירת הנתונים של תרשימי התובנות של Hotspot ושל טבלת הפיצולים של TopN מבוססת על הטבלאות הבסיסיות של SPANNER_SYS.SPLIT_STATS_TOP_*. במאמר שמירת נתונים של סטטיסטיקות של פיצול חם מפורטת מדיניות שמירת הנתונים הספציפית.

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

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

משתמש IAM

כדי לקבל את ההרשאות שנדרשות לצפייה בדף Hotspot insights, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים במכונה:

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

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

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

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

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

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

פתיחת לוח הבקרה Hotspot insights

בלוח הבקרה Hotspot insights מוצג אחוז השימוש המקסימלי ב-CPU המפוצל. המדד הזה הוא אחוז מופשט מ-0 עד 100, שמשקף את כמות המעבד (CPU) שנעשה בה שימוש כשניגשים לשורות בתוך פיצול.

כדי לפתוח את לוח הבקרה Hotspot insights של מסד נתונים:

  1. פותחים את הדף Spanner במסוף Google Cloud .

    כניסה ל-Spanner

  2. בוחרים מכונה מהרשימה.

  3. בתפריט הניווט, לוחצים על הכרטיסייה Hotspot insights.

  4. בשדה database, בוחרים מסד נתונים מהרשימה. בלוח הבקרה מוצג הניקוד של שיא השימוש במעבד (CPU) של מסד הנתונים.

לוח הבקרה כולל את הרכיבים הבאים:

  • תרשים Peak split CPU usage score: ציון גבוה יותר של שימוש ב-CPU (למשל, קרוב ל-100) מציין שהפיצול חם וסביר מאוד שהוא גורם לנקודה חמה בשרת, בהשוואה לציונים נמוכים יותר.
  • Database field: סינון המידע על פיצולים חמים במסד נתונים ספציפי או בכל מסדי הנתונים.
  • מסנן טווח הזמן: מסנן את השימוש ב-CPU בפיצולים בשיא במרווחים של דקה אחת, עד ל-6 שעות בסך הכול.
  • טבלת הפיצולים המובילים: רשימת הפיצולים המובילים, ממוינת לפי ציוני השימוש ב-CPU.

לוח הבקרה של Hotspot insights ב-Spanner, שבו מוצגים תרשים של שיא השימוש ב-CPU לפי פיצול, בורר מסדי נתונים, מסנן של טווח תאריכים וטבלה של N הפיצולים החמים המובילים.

הסבר על הנתונים בטבלה "N הפיצולים המובילים": הנתונים בטבלה N הפיצולים המובילים נלקחים מהטבלאות הבסיסיות של SPANNER_SYS.SPLIT_STATS_TOP_* בהתאם לטווח התאריכים שנבחר. מידע נוסף זמין במאמר שמירת נתונים של נתונים סטטיסטיים של פיצול חם.

פירוש השורות מהטבלאות 10MINUTE או HOUR: השורות שמקורן ב-SPANNER_SYS.SPLIT_STATS_TOP_10MINUTE או ב-SPANNER_SYS.SPLIT_STATS_TOP_HOUR מייצגות נתונים נצברים במרווחי הזמן המתאימים. כמו שמתואר בקטע צבירת אירועים בטבלה, הערך CPU_USAGE_SCORE בשורות האלה הוא הניקוד המקסימלי שנצפה במרווח משנה בסיסי של דקה אחת, והערך UNSPLITTABLE_REASONS הוא איחוד של סיבות.

החליטו אם צריך להתערב בנקודות החמות

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

כדאי לעיין בתרשים כדי לבדוק את השאלות הבאות:

  • באיזה מסד נתונים יש ירידה בזמן האחזור? בוחרים מסדי נתונים שונים מהרשימה Databases כדי למצוא את מסדי הנתונים עם זמן האחזור הארוך ביותר. כדי לגלות באיזה מסד נתונים יש את העומס הגבוה ביותר, אפשר גם לעיין בתרשים Latency של מסדי הנתונים במסוף Google Cloud .

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

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

  • האם הציון של השימוש המפוצל ב-CPU בשיא הוא 100%? האם יש קפיצות בגרף או שהוא עולה לאורך זמן? אם לא רואים אחוזים קבועים של 100% בשיא השימוש במעבד (CPU) המפוצל במשך 10 דקות לפחות, יכול להיות שנקודות חמות הן לא הבעיה. אם אחוז השימוש ב-CPU בפיצול לשיא גבוה במשך יותר מ-10 דקות, כדאי לבדוק אם רמות זמן האחזור של מסד הנתונים גבוהות מהצפוי.

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

זיהוי פיצולים חמים בעייתיים

כדי לזהות פיצול שעלול להיות בעייתי ויש בו נקודות חמות, אפשר לעיין בקטע TopN splits במסוף Google Cloud , כמו שמוצג בהמשך.

טבלה של "הפיצולים המובילים" ב-Spanner, שבה מפורטים פיצולים שעלולים להיות בעייתיים. הטבלה כוללת את העמודות "סוף המרווח", "תחילת הפיצול", "מגבלת הפיצול", "ציון השימוש ב-CPU של הפיצול", "הטבלאות המושפעות" ו"סיבות לאי-אפשרות לפצל".

בטבלה TopN splits מוצגת סקירה כללית של הפיצולים שעשויים להיות חמים במהלך חלון הזמן שנבחר, ממוינים מהעדכני ביותר לישן ביותר. מספר הפיצולים של TopN מוגבל ל-100.

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

בטבלה מוצגים המאפיינים הבאים:

  • סוף המרווח: התאריך והשעה שבהם מסתיים השיא הגבוה בשימוש ב-CPU.
  • Split start: המפתח ההתחלתי של טווח השורות בפיצול. אם תחילת הפיצול היא <begin>, היא מציינת את תחילת טווח המפתחות של מסד הנתונים.
  • מגבלת פיצול: מפתח המגבלה של טווח השורות בפיצול. אם מפתח הגבול הוא <end>, הוא מציין את סוף טווח המפתחות של מסד הנתונים.
  • ציון השימוש ב-CPU של הפיצול: ציון מופשט בין 0 ל-100 שמשקף את כמות ה-CPU שנוצלה על ידי גישות לשורות בתוך הפיצול בשרת יחיד. אפשר להשתמש בציון השימוש במעבד (CPU) כדי להעריך אם יש נקודות חמות.
  • טבלאות מושפעות: הטבלאות שהשורות שלהן עשויות להיות בפיצול.
  • ‫Unsplittable reasons: מערך של סיבות שבגללן Spanner לא יכול לפצל יותר את הפיצול החם. אם יש כאן ערכים, סימן שפיצול מבוסס-עומס לא יכול לצמצם את הנקודה החמה מהסיבות שמופיעות ברשימה. מידע נוסף זמין במאמר סוגי UNSPLITTABLE_REASONS.

ניתוח הסיבות לכך שאי אפשר לפצל את העלות

בטבלה TopN splits אפשר לראות אילו פיצולים ספציפיים מושפעים מהסיבות האלה בזמנים מסוימים, כמו שמוצג בעמודה Unsplittable reasons.

דוגמה לתהליך אבחון

זהו תהליך עבודה אופייני לניפוי באגים בנקודות חמות באמצעות לוח הבקרה:

  1. מזהים את הבעיה בביצועים: שמים לב לזמן אחזור ארוך יותר או לשגיאות באפליקציה.
  2. פתיחת Hotspot Insights: נכנסים למרכז הבקרה של Hotspot Insights במסוף Google Cloud של מסד הנתונים הרלוונטי ב-Spanner. בוחרים את טווח התאריכים שבו הבעיה התרחשה.
  3. בדיקת התרשים:
    • בודקים אם בתרשים Peak split CPU usage score יש ערכים גבוהים לאורך זמן, למשל מעל 50%, ובמיוחד ערכים שמתקרבים ל-100% ונמשכים לפחות 10 דקות.
  4. זיהוי הפיצולים המושפעים וקישור לממצאים: אם השימוש במעבד (CPU) גבוה, עוברים לטבלה TopN splits. מסננים או ממיינים כדי למצוא את הפיצולים עם ציון השימוש ב-CPU בפיצול הגבוה ביותר במהלך זמן ההשפעה. בודקים את העמודה UNSPLITTABLE_REASONS כדי לראות את הפיצולים המובילים הבאים:
    • ציון גבוה של שימוש ב-CPU שניתן לפיצול וסיבות לאי-יכולת פיצול: זהו סימן חזק לכך שהבעיה בביצועים קשורה לנקודות חמות ש-Spanner לא יכול לפתור באופן אוטומטי. סוג הסיבה, כמו HOT_ROW או MOVING_HOT_SPOT, מספק רמז חשוב.
    • ציון גבוה של שימוש ב-CPU בפיצול ואין סיבות לאי-פיצול: יכול להיות שהנקודה החמה חדשה, ו-Spanner עדיין בתהליך הפיצול. לחלופין, יכול להיות שהבעיה היא תגובה לשינויים בעומס העבודה, ולא נדרשת פעולה מצידכם.
  5. הבנת הסיבות: שימו לב לקודים הספציפיים במערך UNSPLITTABLE_REASONS.
  6. הפחתת ההשפעה: בהתאם לסיבות שזוהו, עיינו בסוגי UNSPLITTABLE_REASONS כדי לקבל הסברים מפורטים ואסטרטגיות מומלצות להפחתת ההשפעה, שבדרך כלל כוללות שינויים בתכנון הסכימה או התאמות של עומס העבודה.

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