טאבלטים חמים

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

השם של השיטה שבה משתמשים כדי לקבל רשימה של טאבלטים פופולריים משתנה בהתאם לשפה שבה משתמשים. לצורך פשטות, במסמך הזה השיטה נקראת בשם שלה ב-RPC Cloud Bigtable Admin API, ‏ ListHotTablets. כדי לקבל רשימה של טאבלטים פופולריים, אפשר להשתמש באפשרויות הבאות:

זיהוי טאבלטים חמים יכול לעזור לכם במשימות הבאות:

הסבר על טאבלטים פופולריים

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

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

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

כדי לקבל רשימה של טאבלטים פופולריים, צריך להיות לכם תפקיד עם ההרשאה bigtable.viewer.

תשובה

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

  • שם הטאבלט. המזהה הייחודי שהוקצה על ידי Bigtable לטבלט הפעיל. השדה הזה לא מוצג ב-CLI של gcloud.
  • טבלה. המזהה של הטבלה שמשויכת לטאבלט החם.
  • השימוש ב-CPU. ממוצע השימוש במעבד של הצומת שמשויך לטאבלט החם, באחוזים, במהלך מרווח הזמן של דקה אחת. האחוז הזה הוא הממוצע של סכום השימוש במעבד לכתיבה והשימוש במעבד לקריאה מזמן ההתחלה ועד זמן הסיום.
  • שעת ההתחלה שעת ההתחלה של תקופת השימוש הפעיל בטאבלט.
  • שעת הסיום. שעת הסיום של תקופת השימוש הפעיל בטאבלט.
  • מקש Start. מפתח השורה הראשון בטבלת הנתונים הפעילים.
  • מקש End. מפתח השורה האחרונה בטבלת המשנה החמה. הסיומת \000 מצורפת כשתאריכי ההתחלה והסיום זהים, כדי לציין שהטבלט משתרע על שורה אחת.

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

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

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

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

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

דוגמה לשימוש ב-CLI של gcloud

לפני שמעתיקים את הדוגמה הזו, צריך להתקין את gcloud CLI.

כדי לראות רשימה של טאבלטים פעילים באשכול נתון, מריצים את הפקודה hot-tablets list ב-Cloud Shell או בחלון הטרמינל המקומי.

  gcloud bigtable hot-tablets list CLUSTER_ID --instance INSTANCE_ID

מחליפים את מה שכתוב בשדות הבאים:

  • CLUSTER_ID: המזהה הקבוע של האשכול
  • INSTANCE_ID: המזהה הקבוע של המכונה

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

TABLE      CPU_USAGE  START_TIME                 END_TIME                   START_KEY            END_KEY
test-data  89.3       2021-12-14T01:19:57+00:00  2021-12-14T01:20:57+00:00  user29333893046…    user29333893046…
test-data  22.8       2021-12-14T01:04:59+00:00  2021-12-14T01:06:59+00:00  user29333893046…    user29345657428…
test-data  20.9       2021-12-14T01:18:56+00:00  2021-12-14T01:20:56+00:00  user54519105346…    user545293
test-data  16.5       2021-12-14T01:18:56+00:00  2021-12-14T01:20:56+00:00  user49196524328…    user49206

תרחישי שימוש בנתונים בטאבלטים

זיהוי טאבלטים חמים באשכול יכול לעזור לכם לפתור בעיות בביצועים. אפשר להשתמש בשיטה ListHotTablets בשילוב עם כלי מעקב אחרים, כמו כלי האבחון Key Visualizer ל-Bigtable.

זיהוי מפתחות שורות בעייתיים

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

לדוגמה, נניח שסכימת מפתח השורה של טבלה היא [user_id]#[event_timestamp], מזהי משתמשים וחותמות זמן מופרדים על ידי סמל סולמית. קבלת רשימה של טאבלטים חמים יכולה לעזור לכם לקבוע אם מזהי משתמשים ספציפיים או חותמות זמן של אירועים גורמים לנקודות חמות. זיהוי דפוסי הגישה מאפשר לכם לבצע פעולות נוספות, כמו עיצוב מחדש של מפתחות שורות או טבלאות כדי לפזר את השימוש בצורה אחידה יותר במרחב המפתחות. בדוגמה הזו, אם מזהי המשתמשים גדלים באופן מונוטוני וגורמים לנקודות חמות בגלל זה, אפשר להקצות מזהי משתמשים בסדר שונה או להשתמש במזהים ייחודיים אוניברסליים (UUID) במקום זאת.

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

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

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

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

אחרי שמשתמשים בכלי Key Visualizer כדי לזהות את טווח הזמן שבו התרחשו הנקודות החמות, אפשר להריץ את הפקודה ListHotTablets כדי לקבל רמת פירוט גבוהה יותר גם במרחב המפתחות וגם במרחב הזמן. פירוט רב יותר שימושי במיוחד לשימוש תקופתי. ‫ListHotTablets יכול לזהות נקודות חמות לזמן קצר ש-KeyVisualizer לא יכול לזהות.

זיהוי טבלאות בעייתיות באשכול

הכלי Key Visualizer פועל ברמת הטבלה, ולכן הוא לא תמיד הבחירה הטובה ביותר לפתרון בעיה באשכול שמכיל כמה טבלאות. ‫ListHotTablets פועל ברמת האשכול, כך שאפשר להשתמש בו כדי לזהות טבלאות עם שימוש גבוה ב-CPU ולצמצם את הבעיה.

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