מעקב אחר תקינות של 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:
- נכנסים לדף Cloud Monitoring במסוף Google Cloud .
כניסה למסוף Monitoring - בחלונית הניווט, לוחצים על מרכזי בקרה.
- בשדה 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.