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

במדריך הזה מוסבר איך להשתמש ב-Cloud Monitoring כדי לעקוב אחרי מכונות וירטואליות של TPU. ‫Cloud Monitoring אוסף באופן אוטומטי מדדים ויומנים מה-TPU וממכונת ה-VM המארחת שלו. אפשר להשתמש בנתונים האלה כדי לעקוב אחרי התקינות של TPU ו-Compute Engine.

מדדים מאפשרים לכם לעקוב אחרי כמות מספרית לאורך זמן, לדוגמה, ניצול מעבד (CPU), שימוש ברשת או משך הזמן שבו TensorCore בלי פעילות. היומנים מתעדים אירועים בנקודת זמן ספציפית. רשומות ביומן נכתבות על ידי הקוד שלכם,Google Cloud שירותים, אפליקציות של צד שלישי ותשתיתGoogle Cloud . אפשר גם ליצור מדדים מהנתונים שמופיעים ברשומה ביומן על ידי יצירת מדד מבוסס-יומן. אפשר גם להגדיר מדיניות התראות על סמך ערכי מדדים או רשומות ביומן.

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

גישה למדדי TPU

‫Compute Engine יוצר שני סוגים של מדדי TPU: מדדי זמן ריצה של TPU ומדדי תשתית של מכונות וירטואליות של TPU. יש שתי דרכים לקבל את המדדים:

  • ‫TPU Monitoring Library: אפשר לקבל מדדי זמן ריצה של TPU מ-LibTPU SDK באמצעות TPU Monitoring Library. כך האפליקציות יכולות לקבל טלמטריה בזמן אמת מתוך סביבת האורח. מידע נוסף זמין במאמר ספריית מעקב אחרי TPU.

  • ‫AI Telemetry Collector: קבלת מדדי זמן ריצה ומדדי תשתית של מכונות וירטואליות באמצעות AI Telemetry Collector. הכלי לאיסוף טלמטריה של AI פועל בתוך מכונת ה-TPU הווירטואלית ומאפשר לכם לגשת למדדים דרך Cloud Monitoring או דרך צינור הנתונים שלכם לניטור שמבוסס על Prometheus. מידע נוסף זמין במאמר בנושא AI Telemetry Collector.

מדדי TPU

Google Cloud מדדים של Cloud TPU נוצרים אוטומטית על ידי מכונות וירטואליות של Compute Engine וזמן הריצה של Cloud TPU. המדדים בטבלה הבאה נוצרים על ידי מכונות וירטואליות ב-Compute Engine.

למחרוזות של 'סוג המדד' בטבלה הזו צריך להוסיף את הקידומת compute.googleapis.com/. הקידומת הזו הושמטה מהרשומות בטבלה. כשמריצים שאילתה על תווית, משתמשים בקידומת metric.labels. לדוגמה, metric.labels.LABEL="VALUE".

סוג המדד שלב ההשקה (רמות בהיררכיית המשאבים)
שם לתצוגה
סוג, יחידה
משאבים במעקב
תיאור
תוויות
instance/tpu/accelerator/duty_cycle בטא  (פרויקט)
מחזור הפעילות של המאיץ
‫GAUGE, DOUBLE, %
gce_instance
אחוז הזמן במהלך תקופת הדגימה שבו המאיץ עיבד באופן פעיל. הערכים הם בטווח [0,100]. ‫
accelerator_id: מזהה המכשיר של המאיץ.
instance/tpu/accelerator/memory_bandwidth_utilization בטא  (project)
ניצול רוחב הפס של הזיכרון של המאיץ
‫GAUGE, DOUBLE, %
gce_instance
אחוז השימוש הנוכחי ברוחב הפס של זיכרון המאיץ. החישוב מתבצע על ידי חילוק של רוחב פס הזיכרון שנעשה בו שימוש במהלך תקופת דגימה, ברוחב הפס המקסימלי הנתמך במהלך אותה תקופת דגימה. ‫
accelerator_id: מזהה המכשיר של המאיץ.
instance/tpu/accelerator/memory_total בטא  (project)
Accelerator Memory Total
‫GAUGE, INT64, By
gce_instance
הנפח הכולל של זיכרון המאיץ שהוקצה כרגע בבייטים. ‫
accelerator_id: מזהה המכשיר של המאיץ.
instance/tpu/accelerator/memory_used בטא  (project)
Accelerator Memory Used
‫GAUGE, INT64, By
gce_instance
סך הזיכרון של המאיץ שנעשה בו שימוש כרגע בבייטים. ‫
accelerator_id: מזהה המכשיר של המאיץ.
instance/tpu/accelerator/tensorcore_utilization בטא  (פרויקט)
השימוש ב-TensorCore של המאיץ
‫GAUGE, DOUBLE, %
gce_instance
האחוז הנוכחי של ליבות Tensor בשימוש. החישוב מתבצע על ידי חלוקת מספר הפעולות של Tensorcore שבוצעו במהלך תקופת דגימה במספר הפעולות הנתמכות של Tensorcore במהלך אותה תקופת דגימה. ‫
accelerator_id: מזהה המכשיר של המאיץ.
instance/tpu/active_chips GA  (project)
Active TPU Chips Count
‫GAUGE, INT64, 1
gce_instance
המספר הנוכחי של שבבים שנמצאים בשימוש פעיל (כלומר, לא במצב המתנה). ‫
accelerator_type: סוג המאיץ והדור שלו. ‫
reservation_id: המזהה של ההזמנה של המכונה הפיזית. ‫
provisioning_model: מודל ההקצאה המשויך.
protection_tier: מודל ההגנה המשויך. ‫
block_id: המזהה של הבלוק בתוך האשכול שמארח את המכונה הווירטואלית. ‫
subblock_id: המזהה של תת-הבלוק שמארח את המכונה הווירטואלית. ‫
is_exr: (BOOL) מציין אם הצ'יפ הוא חלק משמירת מקום מורחבת.
instance/tpu/chip_state בטא  (פרויקט)
TPU Chip State Count
‫GAUGE, INT64, 1
gce_instance
מספר שבבי ה-TPU במצבים שונים, כמו תקין, לא תקין ולא ידוע.
state: מצב הצ'יפ. ‫
accelerator_type: סוג המאיץ והדור שלו. ‫
block_id: המזהה של הבלוק בתוך האשכול שמארח את המכונה הווירטואלית. ‫
subblock_id: המזהה של תת-הבלוק שמארח את המכונה הווירטואלית. ‫
reservation_id: המזהה של ההזמנה של המכונה הפיזית. ‫
is_exr: (BOOL) מציין אם הצ'יפ הוא חלק משמירת מקום מורחבת.
instance/tpu/infra_health בטא  (project)
TPU Instance Health
‫GAUGE, INT64, 1
gce_instance
מציין את סטטוס התקינות הכולל של מופע TPU. תוויות המדדים עוזרות לזהות את הסטטוס הבריאותי הספציפי ואת הסיבות לבעיות במופעי TPU שהביצועים שלהם ירודים או שהם לא תקינים. התוויות מתמקדות בעיקר בחומרה של TPU ובמצב המערכת. יכול להיות שיחלפו כמה דקות עד שהשינויים בסטטוס התקינות יתעדכנו במדד הזה. הדגימה מתבצעת כל 60 שניות. אחרי הדגימה, הנתונים לא מוצגים למשך עד 420 שניות. ‫
health_status: מצב התקינות הכללי של מופע ה-TPU. ערכים אפשריים: HEALTHY (פועל כצפוי), UNHEALTHY (זוהתה בעיה קריטית), DEGRADED (בעיה שמשפיעה על הביצועים), UNKNOWN (לא ניתן לקבוע את הסטטוס).
unhealthy_category: הסבר על הסטטוס 'לא תקין' של המכונה הווירטואלית. התווית הזו מאוכלסת רק כשהערך של המדד הוא 'לא תקין'. ‫
machine_type: סוג המכונה של המופע (לדוגמה, ct6e-standard-4t-tpu). ‫
machine_id: המזהה של המכונה הפיזית שמארחת את המכונה הווירטואלית. ‫
block_id: המזהה של הבלוק בתוך האשכול שמארח את המכונה הווירטואלית. ‫
cluster_id: המזהה של האשכול שמארח את המכונה הווירטואלית. ‫
reservation_id: המזהה של ההזמנה של המכונה הפיזית. ‫
subblock_id: המזהה של תת-הבלוק שמארח את המכונה הווירטואלית.
instance/tpu/runtime/uptime בטא  (פרויקט)
זמן פעולה (Uptime) של זמן הריצה
‫GAUGE, INT64, s
gce_instance
זמן הפעולה של סביבת זמן הריצה של ML מאז ההפעלה של ספריית זמן הריצה (libtpu.so) על ידי משימת ה-ML. במהלך התקופה הזו, ספריית זמן הריצה חוסמת את מכשירי ה-TPU לשימוש על ידי משימת ה-ML. ‫
ml_framework_name: שם מסגרת ה-ML. ‫
ml_framework_version: גרסת מסגרת ה-ML.
instance/tpu/scheduled_chips GA  (project)
Scheduled TPU Chips Count
‫GAUGE, INT64, 1
gce_instance
המספר הנוכחי של צ'יפים שהוקצו למכונה וירטואלית במצב תקין (HEALTHY) ושלא הושבתו לצורך תחזוקה. ‫
accelerator_type: סוג המאיץ והדור שלו. ‫
reservation_id: המזהה של ההזמנה של המכונה הפיזית. ‫
provisioning_model: מודל ההקצאה המשויך.
protection_tier: מודל ההגנה המשויך. ‫
block_id: המזהה של הבלוק בתוך האשכול שמארח את המכונה הווירטואלית. ‫
subblock_id: המזהה של תת-הבלוק שמארח את המכונה הווירטואלית. ‫
is_exr: (BOOL) מציין אם הצ'יפ הוא חלק משמירת מקום מורחבת.
instance/tpu/utilized_chips בטא  (פרויקט)
שבבי TPU בשימוש
‫GAUGE, DOUBLE, 1
gce_instance
הקיבולת המנוצלת המצטברת הנוכחית, שמוצגת כמספר אפקטיבי של שבבים פעילים. הוא שווה לסכום של ניצול השברים (0.0 עד 1.0) של כל השבבים הפעילים. ‫
accelerator_type: סוג המאיץ והדור שלו. ‫
reservation_id: המזהה של ההזמנה של המכונה הפיזית. ‫
provisioning_model: מודל ההקצאה המשויך.
protection_tier: מודל ההגנה המשויך. ‫
block_id: המזהה של הבלוק בתוך האשכול שמארח את המכונה הווירטואלית. ‫
subblock_id: המזהה של תת-הבלוק שמארח את המכונה הווירטואלית. ‫
is_exr: (BOOL) מציין אם הצ'יפ הוא חלק משמירת מקום מורחבת.
quota/tpus_per_tpu_family/exceeded אלפא  (פרויקט)
מספר יחידות ה-TPU לכל משפחת TPU. שגיאה של חריגה מהמכסה
DELTA, INT64, 1
compute.googleapis.com/Location
מספר הניסיונות לחרוג מהמגבלה על חישוב מדד המכסה compute.googleapis.com/tpus_per_tpu_family. אחרי הדגימה, הנתונים לא גלויים למשך עד 150 שניות. ‫
limit_name: שם המגבלה. ‫
tpu_family: מאפיין מותאם אישית של משפחת TPU.
quota/tpus_per_tpu_family/limit אלפא  (פרויקט)
מכסת TPU לכל משפחת TPU.
GAUGE, INT64, 1
compute.googleapis.com/Location
המגבלה הנוכחית על מדד המכסה compute.googleapis.com/tpus_per_tpu_family. הדגימה מתבצעת כל 60 שניות. אחרי הדגימה, הנתונים לא גלויים למשך עד 150 שניות. ‫
limit_name: שם המגבלה. ‫
tpu_family: מאפיין מותאם אישית של משפחת TPU.
quota/tpus_per_tpu_family/usage אלפא  (פרויקט)
מספר יחידות ה-TPU לכל משפחת TPU. ניצול המכסה
GAUGE, INT64, 1
compute.googleapis.com/Location
השימוש הנוכחי במדד המכסה compute.googleapis.com/tpus_per_tpu_family. אחרי הדגימה, הנתונים לא גלויים למשך עד 150 שניות. ‫
limit_name: שם המגבלה. ‫
tpu_family: מאפיין מותאם אישית של משפחת TPU.
tpu/multislice/accelerator/device_to_host_transfer_latencies בטא  (פרויקט)
זמני האחזור של העברת נתונים ממכשיר למארח
‫CUMULATIVE, DISTRIBUTION, us
gce_instance
התפלגות מצטברת של זמן האחזור של העברת נתונים מהמכשיר למארח לכל נתח נתונים. השהייה מתחילה כשמוציאים בקשה להעברת נתונים למארח, ומסתיימת כשמתקבל אישור שהעברת הנתונים הושלמה.
buffer_size: גודל המאגר.
tpu/multislice/accelerator/host_to_device_transfer_latencies בטא  (שם הפרויקט)
זמני האחזור של העברת נתונים מהמארח למכשיר
‫CUMULATIVE, DISTRIBUTION, us
gce_instance
התפלגות מצטברת של זמן האחזור של העברת נתונים ממארח למכשיר לכל נתח נתונים של תנועת נתונים מרובת-פרוסות. ההשהיה מתחילה כשמוציאים בקשה להעברת נתונים למכשיר, ומסתיימת כשמתקבל אישור שהעברת הנתונים הסתיימה.
buffer_size: גודל המאגר.
tpu/multislice/network/collective_end_to_end_latencies בטא  (project)
זמני האחזור הכוללים מקצה לקצה
‫CUMULATIVE, DISTRIBUTION, us
gce_instance
התפלגות מצטברת של השהייה הכוללת מקצה לקצה עבור תנועה מרובת פרוסות. הזמן שחלף מתחיל כשמוציאים את הבקשה להעברה של כל הנתונים, ומסתיים כשמתקבל אישור שהעברת הנתונים הסתיימה. ‫
input_size: גודל הקלט של הפעולה הקולקטיבית. ‫
collective_type: סוג הפעולה הקולקטיבית.
tpu/multislice/network/dcn_transfer_latencies בטא  (פרויקט)
זמני האחזור של העברת DCN
‫CUMULATIVE, DISTRIBUTION, us
gce_instance
התפלגות מצטברת של השהיות בהעברת נתונים ברשת עבור תנועה מרובת פרוסות. השהייה מתחילה כשמוציאים בקשה להעברת נתונים דרך ה-DCN ומסתיימת כשמתקבל אישור שהעברת הנתונים הושלמה.
buffer_size: גודל המאגר.
type: סוג.
tpu/multislice/network/grpc_client_call_latencies בטא  (פרויקט)
זמני האחזור של קריאות ללקוח gRPC
‫CUMULATIVE, DISTRIBUTION, us
gce_instance
התפלגות מצטברת של השהיות בהעברת נתונים ברשת שנדרשות לספריית gRPC כדי להשלים RPC מנקודת המבט של המתקשר.
buffer_size: גודל המאגר.
tpu/multislice/network/grpc_server_call_latencies בטא  (פרויקט)
זמני האחזור של קריאות לשרת gRPC
‫CUMULATIVE, DISTRIBUTION, us
gce_instance
התפלגות מצטברת של השהיות בהעברת נתונים ברשת עבור שרת gRPC להשלמת קריאה לשירות מרוחק (RPC) מנקודת מבט של שכבת התעבורה.
buffer_size: גודל המאגר.
tpu/multislice/network/grpc_tcp_delivery_rates בטא  (פרויקט)
שיעורי מסירה של gRPC TCP
‫CUMULATIVE, DISTRIBUTION, Mb/s
gce_instance
התפלגות מצטברת של שיעורי העברת הנתונים בחיבורי TCP. כל דגימה היא קצב העברת הנתונים הממוצע העדכני ביותר עבור חיבור TCP נתון במהלך מרווח ה-TCP ACK האחרון. דגימות של קצב העברת הנתונים נלקחות מליבת ה-TCP של Linux כל 20 שניות, ולכן אפשר לצפות שכל חיבור TCP ייצור בערך 3 דגימות בכל מרווח של 60 שניות.
tpu/multislice/network/grpc_tcp_min_round_trip_times בטא  (פרויקט)
gRPC TCP Min Round Trip Times
‫CUMULATIVE, DISTRIBUTION, us
gce_instance
התפלגות מצטברת של זמני אחזור מינימליים של העברת נתונים ברשת לכל חיבור TCP.
tpu/multislice/network/grpc_tcp_packets_retransmitted_count בטא  (פרויקט) ‫
gRPC TCP Packets Retransmitted Count
‫CUMULATIVE, INT64, 1
gce_instance
המספר הכולל של חבילות הנתונים ששודרו מחדש.
tpu/multislice/network/grpc_tcp_packets_sent_count בטא  (project)
gRPC TCP Packets Sent Count
‫CUMULATIVE, INT64, 1
gce_instance
המספר הכולל של חבילות הנתונים שנשלחו באמצעות TCP.
tpu/slice/capacity/available_chips GA  (project)
Available TPU Chips Count
‫GAUGE, INT64, 1
compute.googleapis.com/AcceleratorSlice
המספר הנוכחי של שבבי TPU בהזמנה מורחבת שזמינים באופן פעיל ומוכנים לשימוש. הדגימה מתבצעת כל 60 שניות. אחרי הדגימה, הנתונים לא מוצגים למשך עד 360 שניות. ‫
accelerator_type: סוג המאיץ והדור שלו. ‫
reservation_id: המזהה של ההזמנה של המכונה הפיזית. ‫
block_id: מזהה הבלוק שמשויך לפרוסה. ‫
subblock_id: מזהה תת-הבלוק שמשויך לפרוסה. ‫
provisioning_model: מודל ההקצאה המשויך.
protection_tier: מודל ההגנה המשויך.
tpu/slice/capacity/committed_chips GA  (project)
Purchased TPU Chips Count
‫GAUGE, INT64, 1
compute.googleapis.com/AcceleratorSlice
המספר הנוכחי של שבבי TPU שנרכשו בהזמנה מורחבת. הדגימה מתבצעת כל 60 שניות. אחרי הדגימה, הנתונים לא מוצגים למשך עד 360 שניות. ‫
accelerator_type: סוג המאיץ והדור שלו. ‫
reservation_id: המזהה של ההזמנה של המכונה הפיזית. ‫
block_id: מזהה הבלוק שמשויך לפרוסה. ‫
subblock_id: מזהה תת-הבלוק שמשויך לפרוסה. ‫
provisioning_model: מודל ההקצאה המשויך.
protection_tier: מודל ההגנה המשויך.
instance/tpu/accelerator/core_temperature בטא  (project)
טמפרטורת ליבה
‫GAUGE, DOUBLE, Cel
gce_instance
טמפרטורת הליבה של ה-TPU. ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקפים הם 0, ‏ 1, ‏ 2, ‏ 3.
instance/tpu/accelerator/core_throttling_indicator בטא  (פרויקט)
Core Throttling Indicator
‫GAUGE, DOUBLE, 1
gce_instance
מספר מחזורי השעון שדילגו עליהם בשנייה מתוך מחזורי השעון הכוללים לכל ליבת TPU. ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקינים הם 0, 1, 2, 3.
instance/tpu/accelerator/hbm_power_draw בטא  (פרויקט)
צריכת חשמל של HBM
‫GAUGE, DOUBLE, W
gce_instance
סכום ההספק במודול HBM בוואט (W). ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקינים הם 0, 1, 2, 3.
instance/tpu/accelerator/hbm_temperature בטא  (פרויקט)
טמפרטורת HBM
‫GAUGE, DOUBLE, Cel
gce_instance
טמפרטורת הזיכרון עם רוחב פס גבוה (HBM) של ה-TPU. ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקפים הם 0, ‏ 1, ‏ 2, ‏ 3. ‫
hbm_id: מזהה מודול של זיכרון ברוחב פס גבוה (HBM). בדרך כלל יש רק ערך עליון, למשל: hbm_0.
instance/tpu/accelerator/hbm_uncorrectable_count בטא  (פרויקט)
מספר השגיאות הבלתי ניתנות לתיקון ב-HBM
‫CUMULATIVE, INT64, 1
gce_instance
מספר השגיאות שלא ניתן לתקן ב-HBM (קריטיות). ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקפים הם 0, ‏ 1, ‏ 2, ‏ 3.
instance/tpu/accelerator/mxu_temperature בטא  (project)
MXU Temperature
‫GAUGE, DOUBLE, Cel
gce_instance
הטמפרטורה של יחידת הכפלת המטריצות (MXU) של ה-TPU. ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקפים הם 0, ‏ 1, ‏ 2, ‏ 3. ‫
die_id: אינדקס המשבצת של המאיץ. בדרך כלל יש רק ערך עליון, למשל: die_0.
‫GAUGE, INT64, 1
gce_instance
התדירות של שינויי מצב בין מצבי עלייה וירידה בקישור ICI. ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקינים הם 0, 1, 2, 3.
‫GAUGE, INT64, 1
gce_instance
מדד מספרי (0 עד 10) שמייצג את תקינות הקישור של ICI. ערכים גבוהים יותר מציינים רמות הולכות וגדלות של חוסר יציבות בקישור – משינויים קלים וזמניים (1-5) ועד לירידה מתמשכת בביצועים (6-9). ערך של 10 מייצג כשל קריטי בקישור שגורם לסילוק אוטומטי של עומסי עבודה פעילים.
port_id: מזהה היציאה.
instance/tpu/accelerator/network/ici_packets_received_count בטא  (פרויקט)
מספר מנות הנתונים שהתקבלו ב-ICI
‫CUMULATIVE, INT64, 1
gce_instance
המספר הכולל של חבילות שהתקבלו על ידי מאיץ ה-TPU דרך קישורי Inter-Chip Interconnect ‏ (ICI). ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקינים הם 0, 1, 2, 3.
instance/tpu/accelerator/network/ici_packets_sent_count בטא  (פרויקט)
מספר חבילות ה-ICI שנשלחו
‫CUMULATIVE, INT64, 1
gce_instance
המספר הכולל של חבילות הנתונים שמועברות על ידי מאיץ ה-TPU דרך קישורי ה-Inter-Chip Interconnect (ICI). ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקפים הם 0, ‏ 1, ‏ 2, ‏ 3.
instance/tpu/accelerator/pcie_fatal_error_count בטא  (פרויקט)
מספר השגיאות החמורות ב-PCIe
‫CUMULATIVE, INT64, 1
gce_instance
מספר השגיאות הקריטיות ב-PCIe שמתרחשות בממשק PCIe. ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקינים הם 0, 1, 2, 3.
instance/tpu/accelerator/pcie_nonfatal_error_count בטא  (פרויקט)
PCIe Nonfatal Error Count
‫CUMULATIVE, INT64, 1
gce_instance
מספר השגיאות הלא-קריטיות ב-PCIe שמתרחשות בממשק PCIe. ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקינים הם 0, 1, 2, 3.
instance/tpu/accelerator/power_draw בטא  (project)
צריכת חשמל
‫GAUGE, DOUBLE, W
gce_instance
צריכת החשמל של המאיץ, שנמדדת בוואט (W). ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקפים הם 0, ‏ 1, ‏ 2, ‏ 3.
instance/tpu/accelerator/tray_power בטא  (project)
Tray Power
‫GAUGE, DOUBLE, W
gce_instance
צריכת החשמל הכוללת במגש ה-TPU. ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקינים הם 0, 1, 2, 3.
instance/tpu/accelerator/tray_temperature בטא  (project)
Tray Temperature
‫GAUGE, DOUBLE, Cel
gce_instance
טמפרטורת המגש של ה-TPU. ‫
accelerator_id: מזהה המכשיר של המאיץ. הערכים התקינים הם 0, 1, 2, 3.
instance/tpu/failure_prediction_status בטא  (פרויקט)
סטטוס של ירידה בביצועים של TPU
‫GAUGE, INT64, 1
gce_instance
המדד הזה מציין את הסבירות שמכונת TPU תיכנס למצב של ירידה בביצועים ב-5 השעות הקרובות, כפי שחוזה האלגוריתם הקנייני שלנו. תווית הערך של המדד הזה היא NO_DEGRADATION_PREDICTED,‏ DEGRADATION_PREDICTED או POSSIBLE_DEGRADATION_PREDICTED. הדגימה מתבצעת כל 60 שניות. אחרי הדגימה, הנתונים לא מוצגים למשך עד 540 שניות. ‫
cluster_id: המזהה המוסתר של האשכול שמארח את המכונה הווירטואלית. ‫
block_id: מזהה הבלוק המוסתר באשכול שמארח את המכונה הווירטואלית. ‫
subblock_id: המזהה של תת-הבלוק המוסתר שמארח את המכונה הווירטואלית. ‫
machine_id: השם המוסתר של המכונה שמארחת את המכונה הווירטואלית. ‫
reservation_id: מזהה ההזמנה. ‫
Value: הסטטוס של מכונת TPU שנכנסת למצב פגום ב-5 השעות הבאות, כפי שחזה האלגוריתם הקנייני שלנו. הערכים האפשריים הם NO_DEGRADATION_PREDICTED,‏ DEGRADATION_PREDICTED ו-POSSIBLE_DEGRADATION_PREDICTED.
tpu/capacity/available_chips בטא  (פרויקט)
מספר שבבי ה-TPU הזמינים
GAUGE, INT64, 1
compute.googleapis.com/Location
המספר הנוכחי של שבבי TPU שזמינים ומוכנים לשימוש. ‫
accelerator_type: סוג המאיץ והדור שלו. ‫
reservation_id: המזהה של ההזמנה של המכונה הפיזית. ‫
provisioning_model: מודל ההקצאה המשויך.
protection_tier: מודל ההגנה המשויך. ‫
is_exr: מציין אם שבב ה-TPU הוא חלק מהזמנה מורחבת.
tpu/capacity/committed_chips בטא  (פרויקט)
מספר שבבי TPU שנרכשו
GAUGE, INT64, 1
compute.googleapis.com/Location
המספר הנוכחי של שבבי TPU שנרכשו. ‫
accelerator_type: סוג המאיץ והדור שלו. ‫
reservation_id: המזהה של ההזמנה של המכונה הפיזית. ‫
provisioning_model: מודל ההקצאה המשויך.
protection_tier: מודל ההגנה המשויך. ‫
is_exr: מציין אם שבב ה-TPU הוא חלק מהזמנה מורחבת.
tpu/network/nic_packets_dropped_count_rx בטא  (פרויקט)
מספר המנות שהושמטו ב-NIC (קבלה)
‫CUMULATIVE, INT64, 1
gce_instance
המספר הכולל של חבילות נכנסות או יוצאות שהכרטיס של המארח השליך, עבור RX.
nic_id: מזהה NIC.
tpu/network/nic_packets_dropped_count_tx BETA  (project)
NIC Packets Dropped Count Tx
‫CUMULATIVE, INT64, 1
gce_instance
המספר הכולל של חבילות נכנסות או יוצאות שהכרטיס של המארח השליך, עבור TX.
nic_id: מזהה NIC.
tpu/network/nic_packets_received_count בטא  (project)
NIC Packets Received Count
‫CUMULATIVE, INT64, 1
gce_instance
המספר הכולל של חבילות הנתונים שהתקבלו על ידי כרטיס הרשת.
nic_id: מזהה NIC.
tpu/network/nic_packets_sent_count בטא  (פרויקט)
מספר המנות שנשלחו מ-NIC
‫CUMULATIVE, INT64, 1
gce_instance
המספר הכולל של חבילות הנתונים שנשלחו על ידי כרטיס הרשת.
nic_id: מזהה NIC.

רשימה מלאה של המדדים שנוצרים על ידי Compute Engine מופיעה במאמר מדדים של Compute Engine.

AI Telemetry Collector

הכלי לאיסוף טלמטריה של AI אוסף ומפרסם מדדים של TPU בשטח השמות compute.googleapis.com עבור יחידות TPU שנוצרו באמצעות Compute Engine API. המדדים האלה הם מדדים מובנים של המערכת, שמספקים תובנות לגבי התקינות והביצועים.

ארכיטקטורת AI Telemetry Collector מתוכננת כ-OpenTelemetry (OTEL) Collector קל משקל וייעודי. הוא משתמש בשני מקלטים עיקריים כדי לתעד נתונים:

  • ‫TPU Runtime Receiver: אוסף מדדים של זמן ריצה ועומס עבודה (כמו מחזור עבודה ושימוש בזיכרון) ישירות מזמן הריצה של TPU כשעומס עבודה של למידת מכונה פעיל.
  • ‫TPU Host Receiver: אוסף מדדי ניצול חומרה, כמו ניצול TensorCore וניצול רוחב פס של הזיכרון, ישירות מהמכשיר, בלי קשר לשאלה אם עומס עבודה פועל.

לאחר מכן, כלי האיסוף של טלמטריית ה-AI משתמש במעבדים כדי להחיל באופן אוטומטי תגי משאבים נדרשים (כמו project_id, ‏ instance_id ו-zone) ומייצא את הטלמטריה ישירות ל-Cloud Monitoring בצורה מאובטחת.

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

אם אתם יוצרים קובצי אימג' מותאמים אישית של מערכת הפעלה, אתם יכולים להשתמש בכלי לאיסוף טלמטריה מבוססת-AI אחרי שמתקינים ומריצים את קובץ האימג' של ai-telemetry-collector Docker. מידע נוסף זמין במאמר בנושא שימוש בתמונת מערכת הפעלה מותאמת אישית.

הגדרות אישיות

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

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

קובץ ה-YAML הבא מגדיר את הכלי לאיסוף נתוני טלמטריה מבוססי-AI לשליחת מדדים אל Prometheus, ערכת כלים בקוד פתוח למעקב אחר מערכות ולשליחת התראות. היא גם מפעילה את אפשרות הניפוי באגים, שמדפיסה מדדים במסוף.

exporters:
  prometheus:
    endpoint: 0.0.0.0:8889

service:
  pipelines:
    metrics:
      exporters:
      -   prometheus # For more: https://prometheus.io/docs/introduction/overview/
      -   googlecloud # If you do not include this, you'll lose Google Cloud Monitoring
      -   debug # print metrics within the console

מערכת הפעלה שמוגדרת כברירת מחדל

אם אתם משתמשים בתמונות של Ubuntu LTS שעברו אופטימיזציה ל-TPU של Google, מריצים את פקודת ה-Snap הבאה כדי להוסיף את קובץ ההגדרות החדש להגדרה הקיימת:

sudo snap set \
  ai-telemetry-collector \
  extra-flags="--config /home/username/additional-config.yaml"

כדי להחליף את ההגדרה הקיימת, משתמשים בדגל config-path במקום בדגל extra-flags:

sudo snap set \
  ai-telemetry-collector \
  config-path="/home/username/new-config.yaml"

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

sudo snap logs -f ai-telemetry-collector

מערכת הפעלה בהתאמה אישית

אם אתם משתמשים במערכת הפעלה בהתאמה אישית, מריצים את פקודת Docker הבאה כדי להוסיף את קובץ ההגדרות החדש להגדרה הקיימת:

# First apply the default configs via `--config=/etc/ai-telemetry-collector/config.yaml`
# Then apply your additional config by volume mount.

docker run --privileged --net=host                                                                   \
  -v <path>/additional-config.yaml:/etc/ai-telemetry-collector/additional-config.yaml \
  ai-telemetry-collector:latest                                                       \
  --config=/etc/ai-telemetry-collector/config.yaml                                    \
  --config=/etc/ai-telemetry-collector/additional-config.yaml

כדי להחליף את ההגדרה הקיימת, משתמשים בפקודת Docker הבאה:

# Mount a volume (your config file) to `/etc/ai-telemetry-collector/config.yaml`
# The binary automatically picks up this file.

docker run --privileged --net=host                                               \
  -v <path>/my-config.yaml:/etc/ai-telemetry-collector/config.yaml   \
  ai-telemetry-collector:latest

יומני ביקורת

שירותיGoogle Cloud יוצרים יומני ביקורת שבהם מתועדים אירועי גישה למשאבי Google Cloud ופעילויות אדמין שמבוצעות בהם. למידע נוסף, ראו יומני ביקורת של Compute Engine.