מעקב אחר תקינות של Cloud TPU

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

במסגרת ניטור תקינות של TPU, לכל מופע TPU שנמצא בשימוש מוקצה סטטוס HEALTHY או UNHEALTHY. ל-TPU שפועלים כמצופה מוקצה סטטוס HEALTHY, ול-TPU שכבר לא פועלים או שהביצועים שלהם ירדו באופן משמעותי מוקצה סטטוס UNHEALTHY.

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

זיהוי של TPU לא תקין

כשמערכת המעקב אחר תקינות ה-TPU מקצה סטטוס UNHEALTHY ל-TPU, היא מספקת מידע מזהה של ה-TPU שנכשל דרך נקודת הקצה של שירות compute.googleapis.com/instance/tpu/infra_health.

גורמים לסטטוס תקינות של TPU

מכונה מסווגת כUNHEALTHY כשיש בעיות בחומרה הפיזית. כשמכונה מסווגת כUNHEALTHY, המערכת למעקב אחרי תקינות ה-TPU מספקת את אחת מהסיבות הבאות:

  • ‫BAD_TPU_CHIP: תקלה פיזית בחומרת ה-TPU עצמה. יכול להיות שה-VM פועל כמצופה, אבל יש פגם ב-TPU שמחובר ל-VM.
  • ‫NETWORKING_ISSUE: בעיות בחומרה בתקשורת הבסיסית ברשת בין הרכיבים השונים של מערכת TPU מבוזרת, כמו קריאות לשירותים מרוחקים (RPC) שהופסקו.
  • ‫BAD_SC_CHIP: כשל פיזי ב-SparseCore של שבב TPU.

תוויות של מדדים

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

שם התווית סוג תיאור
health_status STRING מצב התקינות הכללי של מופע ה-TPU.
unhealthy_category STRING הסיבה לסטטוס התקינות. התווית הזו מאוכלסת רק כשהערך של המדד הוא UNHEALTHY.
machine_type STRING סוג המכונה של המכונה ב-Compute Engine.
reservation_id STRING המזהה של המקום השמור במכונה הפיזית.

בנוסף, המעקב אחר תקינות ה-TPU מספק את תוויות המשאבים הבאות:

שם התווית סוג תיאור
project STRING מספר הפרויקט.
service STRING שירות ה-API‏ (compute.googleapis.com).
resource_type STRING המכונה הווירטואלית.
location STRING האזור של המכונה.
resource_id STRING מזהה המכונה של Compute Engine.

המעקב אחר תקינות ה-TPU מספק את תוויות המדדים הנוספות הבאות להזמנות במצב 'כל הקיבולת' דרך TPU Cluster Director:

שם התווית סוג תיאור
machine_id STRING המזהה של המכונה הפיזית שמארחת את המכונה הווירטואלית.
block_id STRING המזהה של הבלוק באשכול שבו מתארחת מכונת ה-VM.
cluster_id STRING המזהה של האשכול שמארח את מכונת ה-VM.
subblock_id STRING המזהה של תת-הבלוק שמארח את מכונת ה-VM.

רישום ביומן

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

היומן מכיל אחת מהסיבות הבאות:

  • ‫FINGERPRINT_MISMATCH: תוכניות שאמורות להריץ את אותו מודול TPU מכילות טביעות אצבע בינאריות שונות. הסיבה לכך היא כנראה חוסר עקביות שנובע מבעיות בקומפיילר.
  • ‫DATA_INPUT_STALL: יחידות ה-TPU נתקעות במהלך פעולות של גישה ישירה לזיכרון (DMA) או העברות נתונים. אי אפשר להמשיך להשתמש ב-TPU עד שפעולות ה-DMA יסתיימו.
  • ‫UNRECOVERABLE_ERROR: אחד או יותר מהעובדים נתקלו בשגיאה שלא ניתן לתקן והם במצב לא מוגדר.
  • ‫DIFFERENT_MODULE: עובדים מבצעים מודולים שונים של TPU כשהם אמורים להריץ את אותו מודול.
  • UNKNOWN_CAUSE: סיבת השגיאה לא ידועה.

אפשר לצפות ביומנים באמצעות Logs Explorer או Logs API. מידע נוסף על Google Cloud רישום ביומנים זמין במאמר Google Cloudרישום ביומנים.

מעקב באמצעות המסוף

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

כדי לראות לוח בקרה מוכן מראש ב-Cloud Monitoring:

  1. נכנסים לדף Cloud Monitoring במסוף Google Cloud .
    כניסה למסוף Monitoring
  2. בחלונית הניווט, לוחצים על מרכזי בקרה.
  3. בשדה Filter search (סינון החיפוש), מזינים 'TPU Instance Health Dashboard' (לוח בקרה של תקינות מופע TPU).

כברירת מחדל, המדדים הבאים מוצגים בלוח הבקרה:

  • התקינות הכוללת של מכונות TPU: אחוז מכונות ה-TPU שמסווגות כHEALTHY.
  • מספר המופעים: המספר הכולל של מופעי TPU שנמצאים בשימוש.
  • מספר מכונות TPU תקינות: המספר הכולל של מכונות TPU שמסווגות כ-HEALTHY.
  • Number of unhealthy TPU instances: המספר הכולל של מכונות TPU שמסווגות כ-UNHEALTHY.
  • התפלגות תקינות התשתית של המכונות הווירטואליות: מספר המכונות הווירטואליות HEALTHY לאורך זמן.

כדי להוסיף שאילתה בהתאמה אישית, לוחצים על Add Query (הוספת שאילתה) וכותבים שאילתת PromQL. לדוגמה, השאילתה הבאה מאחזרת את כל מופעי ה-TPU הלא תקינים:

count({__name__="compute.googleapis.com/instance/tpu/infra_health", monitored_resource="gce_instance", health_status="UNHEALTHY"})

מידע נוסף על מעקב באמצעות מסוף Google Cloud זמין ב מאמרי העזרה בנושא Cloud Monitoring.

מעקב באמצעות ה-CLI

‫Google Cloud CLI מספק נתוני סטטוס של TPU בזמן אמת. בדוגמה הבאה, הבקשה מאחזרת את כל יחידות ה-TPU של UNHEALTHY:

export TOKEN=$(gcloud auth application-default print-access-token)

export PROMQL_QUERY='count({__name__="compute.googleapis.com/instance/tpu/infra_health", monitored_resource="gce_instance", health_status="UNHEALTHY"})'

export LOCATION="global"

curl -G \
  --header "Authorization: Bearer ${TOKEN}" \
  --header "Content-Type: application/json" \
  --header "X-Goog-User-Project: ${PROJECT_ID}" \
  --data-urlencode "query=${PROMQL_QUERY}" \
  "https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/location/${LOCATION}/prometheus/api/v1/query"

אמורה להתקבל תגובה שדומה לזו:

{"status":"success","data":{"resultType":"vector","result":[65]}}

למידע נוסף על gcloud CLI, אפשר לעיין במאמר סקירה כללית על gcloud CLI.