במאמר הזה מוסבר איך להשתמש במרכזי הבקרה של Cloud Monitoring כדי לעקוב אחרי מכונות A4X Max, A4X, A4, A3 Ultra ו-A3 Mega שיצרתם באמצעות קיבולת שמוגבלת להזמנה. בעזרת מרכזי הבקרה האלה תוכלו לזהות ולפתור צווארי בקבוק בביצועים במכונות העצמאיות של Compute Engine או באשכולות Slurm, וכך לצמצם את זמני ההשבתה בעומסי העבודה.
אתם יכולים ליצור לוחות בקרה בהתאמה אישית או להשתמש בלוחות בקרה מוכנים מראש של Monitoring כדי לעקוב אחרי:
תקינות המכונה
ביצועי ה-GPU
יעילות השידור ברשת
יעילות הרשת בין בלוקים ובלוקי משנה
יעילות עומס העבודה של למידת מכונה (ML)
זיהוי משימות איטיות
זיהוי עומסי עבודה שלא מגיבים
כדי לעקוב אחרי אשכולות ב-Cluster Director, קראו את המאמר מעקב אחרי ביצועי האשכולות באמצעות לוחות בקרה מוכנים מראש.
לפני שמתחילים
לפני שמתחילים לעקוב אחרי עומס העבודה, אם עדיין לא עשיתם זאת, בצעו את הפעולות הבאות:
פריסת עומס עבודה שאפשר לעקוב אחריו. כדי לדעת באילו עומסי עבודה יש תמיכה, עיינו במגבלות שמפורטות במאמר הזה. במאמר סקירה כללית על אפשרויות הפריסה מוסבר איך לפרוס עומס עבודה.
מידע על Google Cloud השירותים למעקב אחרי עומסי עבודה:
המדדים במאמר הזה משתמשים בלוחות הבקרה של Monitoring. מידע על לוחות הבקרה של Monitoring, תקופות השמירה של Monitoring והתמחור של Monitoring.
בנוסף, זיהוי המשימות האיטיות מספק רשומות ביומן ב-Cloud Logging. ממשקי Logging, תקופות השמירה של Logging והתמחור של Logging.
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
מגבלות
המדדים שבמסמך הזה נתמכים רק בעומסי עבודה שפועלים במכונות שעומדות בכל הקריטריונים הבאים:
- צריך ליצור את המכונות כמכונות Compute Engine עצמאיות או כחלק מאשכול Slurm.
- המכונות צריכות להיווצר באמצעות קיבולת שקשורה להזמנה.
- המכונות צריכות להיות מסדרת המכונות A4X Max, A4X, A4, A3 Ultra או A3 Mega.
- עם זאת, זיהוי חריגים נתמך גם במכונות וירטואליות (VM) מסדרת המכונות A3 Mega.
כדי לעקוב אחרי מדדי עומסי העבודה של למידת המכונה, צריך להגדיר מעקב אחרי עומסי העבודה.
מגבלות בזיהוי משימות איטיות
למדדים של זיהוי משימות איטיות יש את המגבלות הנוספות הבאות:
- בסדרות מכונות נתמכות שאינן A3 Mega, זיהוי חריגים תומך רק במכונות שמאפשרות לספריית Collective Communication Analyzer (CoMMA) לייצא נתוני טלמטריה של NCCL לשירותי Google Cloud . מידע נוסף מופיע במאמר סקירה כללית על CoMMA.
- בדרך כלל, דיווח על משימה איטית באמצעות זיהוי משימות איטיות נמשך עד 10 דקות.
- בניגוד למדדים האחרים במסמך הזה, אי אפשר לסנן את מדדי הזיהוי של משימות איטיות בפרויקטים לפי אשכול, בלוק, בלוק משנה או מכונה. עם זאת, אפשר לסנן שאילתות של יומני זיהוי של משימות איטיות לפי המזהה של מכונה אחת או יותר שחשודות כמשימות איטיות.
מגבלות בזיהוי עומסי עבודה שלא מגיבים
מדדי הזיהוי של עומסי עבודה שלא מגיבים תומכים רק במכונות שמשתמשות בספריית Collective Communication Analyzer (CoMMA) כדי לייצא נתוני טלמטריה של NCCL לשירותי Google Cloud . מידע נוסף מופיע במאמר סקירה כללית על CoMMA.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות למעקב אחרי מדדים של עומסי עבודה ב-AI Hypercomputer, בקשו מהאדמין להקצות לכם את התפקידים הבאים ב-IAM:
-
כדי לצפות במדדים ב-Cloud Monitoring: עריכת מעקב (
roles/monitoring.editor) בפרויקט -
כדי לצפות ביומני זיהוי המשימות האיטיות ב-Logging:
צפייה ביומנים (
roles/logging.viewer) בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות כדי לעקוב אחרי מדדים של עומסי עבודה ב-AI Hypercomputer. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לעקוב אחרי מדדים של עומסי עבודה ב-AI Hypercomputer, צריך את ההרשאות הבאות:
-
כדי לצפות במרכזי הבקרה:
monitoring.dashboards.getבפרויקט -
כדי ליצור מרכזי בקרה:
monitoring.dashboards.createבפרויקט -
כדי לראות את רשומות היומן:
logging.logEntries.listבפרויקט
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
המדדים הזמינים
בהתאם לתרחיש לדוגמה, המדדים הבאים זמינים למעקב אחרי המכונות ואשכולות Slurm:
כדי לעקוב אחרי התקינות, הביצועים וביצועי הרשת של ה-GPU שמחוברים למכונות, קראו את המאמר מדדי תשתית.
כדי לעקוב אחרי היעילות של יחידות ה-GPU בעומסי העבודה של למידת המכונה, קראו את המאמר מדדים של עומסי עבודה של למידת מכונה.
כדי לעקוב אחרי מכונות חשודות בעומסי עבודה של למידת מכונה עם ביצועים איטיים, קראו את המאמר מדדים לזיהוי מכונות איטיות.
בקטע הצגת מדדים מוסבר איך להציג את המדדים האלה.
מדדי תשתית
כדי לעקוב אחרי התקינות, הביצועים וביצועי הרשת של ה-GPU שמחוברים למכונות, אתם יכולים להשתמש במדדים הבאים:
סקירה כללית של המדדים שזמינים ב-Compute EngineGoogle Cloud
מדדי תקינות של ה-GPU
כדי לעקוב אחרי התקינות של ה-GPU, אתם יכולים להשתמש במדדים הבאים:
| שם | סוג מדד | סדרות מכונות נתמכות | תיאור |
|---|---|---|---|
| סטטוס המכונה | machine/machine_status |
A4X Max, A4X, A4, A3 Ultra או A3 Mega | אם המכונה שבה משתמשים תקינה או לא תקינה וצריך לתקן אותה. |
| סטטוס NVSwitch | instance/gpu/nvswitch_status |
A4X Max, A4X, A4, A3 Ultra או A3 Mega | אם יש בעיות ב-NVLink Switch ב-GPU של NVIDIA שמחובר למכונה. |
| תקינות התשתית של ה-VM | instance/gpu/infra_health |
A4X, A4, A3 Ultra או A3 Mega | תקינות האשכול, הבלוק, תת-הבלוק והמארח שבהם פועלות המכונות. אם המדד הזה מראה שהתשתית של מכונה לא תקינה, הוא גם מתאר את הבעיה. |
| ציון חיזוי הכשל של המכונה הווירטואלית | instance/gpu/failure_prediction_score |
A4X, A4, A3 Ultra או A3 Mega |
הסבירות שהמארח שבו פועלת המכונה יתדרדר בחמש השעות הבאות. הערך יכול להיות בין 0.0 ל-1.0. ככל שהערך נשאר קרוב יותר ל-1.0 לאורך זמן, כך גדל הסיכוי שהביצועים של המכונה ירדו. במקרה כזה, מומלץ להעביר את המשימה למכונה אחרת. אם נתקלים בבעיות במכונה, צריך לדווח על המארח שלה כפגום.
|
מדדי ביצועים של GPU
כדי לעקוב אחרי הביצועים של ה-GPU, אתם יכולים להשתמש במדדים הבאים:
| שם | סוג מדד | סדרות מכונות נתמכות | תיאור |
|---|---|---|---|
| שימוש מצטבר בהקשר | instance/gpu/accumulated_context_utilization_seconds |
A4X Max, A4X, A4, A3 Ultra או A3 Mega | משך הזמן הכולל, בשניות, שבו ה-GPU עסוק בעיבוד עומס עבודה. |
| צריכת החשמל של ה-GPU | instance/gpu/power_consumption |
A4X Max, A4X, A4, A3 Ultra או A3 Mega | ההספק בוואט (W) ובערכים עשרוניים שנצרך על ידי יחידות GPU נפרדות במארח. במכונות שמחוברים אליהן כמה מעבדים גרפיים, המדד מספק את צריכת החשמל בנפרד לכל מעבד גרפי במארח. |
| ניצול SM | instance/gpu/sm_utilization |
A4X Max, A4X, A4, A3 Ultra או A3 Mega | ערך שאינו אפס מציין שנעשה שימוש פעיל בבלוקי ה-SM (Streaming Multiprocessor) במעבדים הגרפיים. |
| טמפרטורת ה-GPU | instance/gpu/temperature |
A4X Max, A4X, A4, A3 Ultra או A3 Mega | הטמפרטורה במעלות צלזיוס (℃) ובערכים עשרוניים של יחידות GPU נפרדות במארח. במכונות שמחוברים אליהן כמה מעבדים גרפיים, המדד מספק את הטמפרטורה בנפרד לכל מעבד גרפי במארח. |
| מרווח תרמי של ה-GPU | instance/gpu/tlimit |
A4X Max, A4X, A4, A3 Ultra או A3 Mega | ההפרש בין הטמפרטורה הנוכחית לטמפרטורה המקסימלית של כל GPU במעלות צלזיוס (℃) ובערכים עשרוניים, לפני שצריך להאט את הפעילות שלו בגלל טמפרטורה גבוהה. במכונות עם כמה מעבדים גרפיים, המדד מספק את המרווח התרמי בנפרד לכל מעבד גרפי במארח. |
מדדי ביצועים של רשת GPU
כדי לעקוב אחרי ביצועי הרשת של ה-GPU, אתם יכולים להשתמש במדדים הבאים. כדי לעקוב אחרי מתגי רשת ToR בקצה העורפי, ראו מדדים של מתגי ToR.
| שם | סוג מדד | סדרות מכונות נתמכות | תיאור |
|---|---|---|---|
| שינויים בקישור לספק | instance/gpu/link_carrier_changes |
A4X, A4, A3 Ultra או A3 Mega | התדירות שבה ספק הקישור לרשת משתנה בדקה. |
| זמן הלוך ושוב (RTT) ברשת | instance/gpu/network_rtt |
A4X, A4, A3 Ultra או A3 Mega | זמן הלוך ושוב, שנמדד במיקרו-שניות, של נתוני רשת שעוברים בין מקור ליעד. |
| תנועה ברשת בין בלוקים | instance/gpu/network/inter_block_tx |
A4X, A4, A3 Ultra או A3 Mega | מספר הבייטים של תנועה ברשת בין בלוקים. |
| תנועה ברשת בין בלוקי משנה | instance/gpu/network/inter_subblock_tx |
A4X, A4, A3 Ultra או A3 Mega | מספר הבייטים של התנועה ברשת בין בלוקי המשנה. |
| תנועה ברשת בתוך בלוק משנה | instance/gpu/network/intra_subblock_tx |
A4X, A4, A3 Ultra או A3 Mega | מספר הבייטים של תנועה ברשת בתוך בלוק משנה אחד. |
| מהירות פעילה של NVLink | instance/gpu/nvlink_active_speed |
A4X Max, A4X, A4, A3 Ultra או A3 Mega | מהירות היציאה של קישור הגישה הנוכחי, ב-GBps. |
| בייטים של תפוקת Rx | instance/gpu/throughput_rx_bytes |
A4X, A4, A3 Ultra או A3 Mega | מספר הבייטים שהתקבלו מהתנועה ברשת. |
| בייטים של תפוקת Tx | instance/gpu/throughput_tx_bytes |
A4X, A4, A3 Ultra או A3 Mega | מספר הבייטים שהועברו לתנועה ברשת. |
מדדי מתג ToR
באשכולות A4X Max ו-A4X, אתם יכולים לעקוב אחרי נתוני הטלמטריה של מתג הרשת ToR בקצה העורפי כדי לבצע את הפעולות הבאות במהלך אימון מבוזר של למידת מכונה:
- לבדוק את תקינות המתג והיציאה.
- בודקים את קיבולת רוחב הפס הזמינה ואת עומק התור במאגר הנתונים הזמני (buffer queue).
- אבחון של חבילות שנמחקו, שגיאות, שינויים תכופים בממשק ואירועים של ניהול עומסים.
המדדים האלה משתמשים בסוג המשאב במעקב compute.googleapis.com/NetworkSwitch ובקידומת של סוג המדד compute.googleapis.com/.
ב-Metrics Explorer, בוחרים את סוג המשאב NetworkSwitch (compute.googleapis.com/NetworkSwitch).
המדדים של המתגים מאורגנים לפי הקטגוריות הבאות:
החלפת מדדי התקינות והסטטוס
אתם יכולים להשתמש במדדים שמפורטים בקטע הזה כדי:
- בודקים את סטטוס הפעילות של יציאות המתג.
- מעקב אחרי ניצול המעבד (CPU) וניצול הזיכרון של המתג.
- בודקים את זמני ההפעלה כדי לזהות הפעלות מחדש לא צפויות.
| שם | סוג מדד | סדרות מכונות נתמכות | תיאור |
|---|---|---|---|
| סטטוס הניוד | network_switch/port_status |
A4X Max או A4X | מציין את סטטוס הפעילות של הממשק הפיזי (יציאה) במתג הרשת. ערך המדד הוא תמיד 1 לצבירה. המצב בפועל מופיע בתווית status (למשל UP או DOWN).תוויות עיקריות: port_identifier, status, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| ניצול יחידת העיבוד המרכזית (CPU) | network_switch/cpu_utilization |
A4X Max או A4X | ניצול המעבד (CPU) של מתג הרשת, נמדד כשבר מ-0.0 עד 1.0.תוויות מפתח: subblock_id, block_id, reservation_id, switch_type.
|
| זיכרון בשימוש | network_switch/memory_used |
A4X Max או A4X | הזיכרון שמתג הרשת משתמש בו, בבייטים. תוויות מפתח: subblock_id, block_id, reservation_id, switch_type.
|
| סה"כ זיכרון | network_switch/total_memory_bytes |
A4X Max או A4X | נפח הזיכרון הכולל של מתג הרשת, בבייטים. תוויות מפתח: subblock_id, block_id, reservation_id, switch_type.
|
| זמן האתחול | network_switch/boot_time_in_ns |
A4X Max או A4X | חותמת הזמן של הפעלת מתג הרשת, בננו-שניות מאז ראשית זמן יוניקס (Unix epoch). תוויות מפתח: subblock_id, block_id, reservation_id, switch_type.
|
מעבר בין מדדי קיבולת ומדדי תור
כדי לעקוב אחרי קיבולת הרשת הבסיסית לעומת הקיבולת בפועל, ולנטר את עומק התור במאגר הנתונים הזמני ואת מספר החבילות שנמחקו בתור במתג, השתמשו במדדים הבאים:
| שם | סוג מדד | סדרות מכונות נתמכות | תיאור |
|---|---|---|---|
| קיבולת בסיסית | network_switch/baseline_capacity_kbps |
A4X Max או A4X | קיבולת רוחב הפס הפוטנציאלית הכוללת של חיבור מתג ToR לבלוק-העל, בקילו-ביט לשנייה (kbit/s). תוויות מפתח: subblock_id, block_id, reservation_id, switch_type.
|
| קיבולת אפקטיבית | network_switch/effective_capacity_kbps |
A4X Max או A4X | קיבולת התפעול השימושית של חיבור מתג ToR לבלוק-העל, בקילו-ביט לשנייה (kbit/s). המדד הזה משקף הפחתות בקיבולת שנגרמו בגלל קישורים לא תקינים או קישורים במצב אופליין. תוויות מפתח: subblock_id, block_id, reservation_id, switch_type.
|
| עומק התור המקסימלי של תעבורת נתונים יוצאת | network_switch/egress_max_queue_depth |
A4X Max או A4X | עומק התור המקסימלי שנצפה במהלך מחזור המדידה האחרון. תוויות מפתח: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
|
| השלכות של תורים בתעבורת נתונים יוצאת (egress) | network_switch/egress_queue_drops_count |
A4X Max או A4X | המספר המצטבר של חבילות שהושמטו מתורי היציאה בגלל עומס בתור או ניצול מלא של המאגר. תוויות מפתח: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
|
| השלכות של מאגר נתונים זמני נכנס | network_switch/in_buffer_discards |
A4X Max או A4X | המספר המצטבר של חבילות נכנסות שנמחקו בכניסה בגלל
גלישת מאגר נתונים (buffer overflow). תוויות מפתח: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
מדדים של ניתוקים, שגיאות ובקרת זרימה במתג
אתם יכולים להשתמש במדדים שבקטע הזה כדי לאבחן את הבעיות הבאות, שעלולות לגרום לעיכובים באימון מבוזר או לזמן קצוב לתפוגה של תקשורת קולקטיבית (כמו זמן קצוב לתפוגה של NCCL watchdog):
- מנות שנזרקו, שגיאות שידור ושינויים במצב הקישור הפיזי.
- שגיאות במילים בתיקון שגיאות מראש (FEC).
- אירועים של ניהול עומסים, כמו השהיות של בקרת זרימה מבוססת-עדיפות (PFC) וסימונים של הודעות עומס מפורשות (ECN).
| שם | סוג מדד | סדרות מכונות נתמכות | תיאור |
|---|---|---|---|
| תנודות בממשק | network_switch/interface_flaps_count |
A4X Max או A4X | המספר המצטבר של מעברי מצב של קישור פיזי (תנודות בין UP ל-DOWN) בממשק של יציאת המתג.תוויות מפתח: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| שגיאות במילים ב-FEC | network_switch/fec_word_error_count |
A4X Max או A4X | המספר המצטבר של שגיאות במילים של תיקון שגיאות מראש (FEC). משתמשים בתווית הבוליאנית correctable (true או false) כדי להבחין בין שגיאות שניתן לתקן לשגיאות שלא ניתן לתקן.תוויות מפתח: port_identifier, correctable, subblock_id, block_id, reservation_id, switch_type.
|
| חבילות שסומנו ב-ECN | network_switch/ecn_marked_packets_count |
A4X Max או A4X | המספר המצטבר של חבילות שסומנו בביטים של Explicit Congestion Notification (ECN) בגלל חריגה מסף המאגר. תוויות מפתח: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| מנות PFC שהתקבלו | network_switch/pfc_rx_packets_count |
A4X Max או A4X | המספר המצטבר של מסגרות ההשהיה של בקרת זרימה מבוססת-עדיפות (PFC) שהתקבלו ביציאה. הערה: רלוונטי רק לסביבות ייעודיות שבהן מופעלת בקרת זרימה מבוססת-עדיפות (PFC). תוויות מפתח: port_identifier, priority_index, subblock_id, block_id, reservation_id, switch_type.
|
| מנות PFC TX | network_switch/pfc_tx_packets_count |
A4X Max או A4X | המספר המצטבר של מסגרות השהיה של בקרת זרימה מבוססת-עדיפות (PFC)
שנשלחו מהיציאה כדי לווסת את התנועה הנכנסת. הערה: רלוונטי רק לסביבות ייעודיות שבהן מופעלת התכונה PFC. תוויות מפתח: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
|
| חבילות QoS tx | network_switch/qos_tx_packets |
A4X Max או A4X | המספר המצטבר של חבילות הנתונים של איכות השירות (QoS) שהועברו בתור שצוין. תוויות מפתח: port_identifier, queue_name, subblock_id, block_id, reservation_id, switch_type.
|
| מספר חבילות הנתונים הנכנסות | network_switch/in_packets_count |
A4X Max או A4X | המספר המצטבר של חבילות נתונים נכנסות שהתקבלו ביציאת המתג. תוויות מפתח: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| בשגיאות | network_switch/in_errors |
A4X Max או A4X | המספר המצטבר של חבילות נתונים נכנסות שהתקבלו עם שגיאות שמנעו את המסירה שלהן. תוויות מפתח: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| בפריטים שנמחקו | network_switch/in_discards |
A4X Max או A4X | המספר המצטבר של חבילות נתונים נכנסות תקינות שנמחקו (לדוגמה, בגלל שאין מספיק מקום במאגר הנתונים). תוויות מפתח: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| שגיאות ביציאה | network_switch/out_errors |
A4X Max או A4X | המספר המצטבר של חבילות יוצאות שלא נשלחו בגלל שגיאות. תוויות מפתח: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| חבילות שנמחקו ביציאה | network_switch/out_discards |
A4X Max או A4X | המספר המצטבר של חבילות נתונים יוצאות שנבחרו למחיקה, למרות שלא זוהו שגיאות. תוויות מפתח: port_identifier, peer_target_identifier, peer_port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| מספר הבייטים הנכנסים | network_switch/in_bytes_count |
A4X Max או A4X | המספר המצטבר של בייטים נכנסים שהתקבלו ביציאת המתג. תוויות מפתח: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
| מספר הבייטים היוצאים | network_switch/out_bytes_count |
A4X Max או A4X | המספר המצטבר של בייטים יוצאים שנשלחו מיציאת המתג. תוויות מפתח: port_identifier, subblock_id, block_id, reservation_id, switch_type.
|
מדדים של שגיאות קריטיות ב-GPU
כדי לעקוב אחרי השגיאות שמתרחשות במעבדי ה-GPU, שעלולות לגרום למכונות להפסיק לפעול או לפגוע בביצועים שלהן, אתם יכולים להשתמש במדדים הבאים:
| שם | סוג מדד | סדרות מכונות נתמכות | תיאור |
|---|---|---|---|
| שגיאת זמן ריצה של NVLink | instance/gpu/nvlink_runtime_error |
A4X Max או A4X | אם אירעה שגיאת זמן ריצה של NVLink. |
| שגיאות DRAM ECC שלא ניתן לתקן | instance/gpu/dram_uncorrectable_ecc_error_count |
A4X Max או A4X | מספר הקודים לתיקון שגיאות (ECC) שלא ניתנים לתיקון בזיכרון הגישה האקראית הדינמי (DRAM) של ה-GPU. |
| מספר המיפויים מחדש של שורות DRAM שלא ניתנים לתיקון | instance/gpu/dram_uncorrectable_row_remapping_count |
A4X Max או A4X | מספר המיפויים מחדש של שורות משגיאות שלא ניתן לתקן ב-DRAM של ה-GPU. |
| המיפוי מחדש של שורת DRAM שלא ניתן לתקן נכשל | instance/gpu/dram_row_remapping_failed |
A4X Max או A4X | אם מיפוי מחדש של שורה ב-DRAM של ה-GPU נכשל בגלל אחת מהבעיות הבאות:
|
| שגיאות PCIe שלא ניתן לתקן | instance/gpu/pcie_fatal_error_count |
A4X Max או A4X | מספר השגיאות שלא ניתן לתקן ב-PCIe (חיבור מהיר של רכיבים היקפיים). |
| שגיאות ECC במטמון שלא ניתן לתקן | instance/gpu/cache_uncorrectable_ecc_error_count |
A4X Max או A4X | מספר ה-ECC שלא ניתנים לתיקון בזיכרון המטמון. |
מדדים של עומסי עבודה של למידת מכונה
כדי לעקוב אחרי הפרודוקטיביות – ובאופן ספציפי, התפוקה – של עומסי העבודה של למידת המכונה, אתם יכולים להשתמש במדדים הבאים:
| שם | סוג מדד | סדרות מכונות נתמכות | תיאור |
|---|---|---|---|
| זמן פרודוקטיבי | workload/goodput_time |
A4X, A4, A3 Ultra או A3 Mega | הזמן, בשניות, שעומס העבודה מקדיש לפעילויות goodput. הפעילויות האלה הן משימות ליבה שימושיות, כמו מעבר קדימה או אחורה במהלך אימון המודל. |
| זמן לא פרודוקטיבי | workload/badput_time |
A4X, A4, A3 Ultra או A3 Mega | הזמן, בשניות, שעומס העבודה משקיע בפעילויות badput. הפעילויות האלה הן משימות תקורה, כמו טעינה או עיבוד מראש של נתונים לאימון. |
מדדים לזיהוי משימות איטיות
מדדי הזיהוי של משימות איטיות עוזרים לכם להבחין במשימות איטיות חשודות ולזהות אותן. משימות איטיות הן כשלים בנקודה אחת שלא גורמים לקריסה, אבל בסופו של דבר מאטים את כל עומס העבודה.
כדי לעקוב אחרי זיהוי של מכונות VM איטיות, משתמשים במדד הבא:
| שם | סוג מדד | סדרות מכונות נתמכות | תיאור |
|---|---|---|---|
| חשד למשתתפים שנותרו מאחור | instance/gpu/straggler_status |
A4X, A4, A3 Ultra או A3 Mega | אם יש חשד שמכונה וירטואלית היא איטית ומשפיעה על הביצועים של עומס העבודה. מומלץ לפעול לגבי חשד למשימות איטיות רק כשמדדים אחרים מצביעים על בעיות בעומס העבודה. |
אתם יכולים גם לראות את מדדי הזיהוי של משימות איטיות ברשומות ביומן של מכונות A4X, A4, A3 Ultra או A3 Mega. לדוגמה, אפשר להשתמש בשאילתות הבאות:
| תיאור | שאילתה |
|---|---|
| יומנים עם חשד למכונות וירטואליות ספציפיות שמתעכבות. אתם יכולים להשתמש בשאילתה הזו כדי לבדוק אם יש חשד למשימות איטיות בעומס עבודה ספציפי בפרויקט. |
logName=~ "/logs/compute.googleapis.com%2Fworkload_diagnostic" AND jsonPayload.suspectedStragglersDetection.numNodes > 0 AND jsonPayload.suspectedStragglersDetection.nodes.instanceId="INSTANCE_ID"
מחליפים את
OR jsonPayload.suspectedStragglersDetection.nodes.instanceId="INSTANCE_ID"
|
| כל היומנים של זיהוי המשימות האיטיות בפרויקט. אפשר להשתמש בשאילתה הזו כדי לבדוק אם שירות זיהוי המשימות האיטיות פועל כשלא מזוהות משימות איטיות חשודות. (בגלל המגבלות, אי אפשר לסנן את היומנים בלי חשד למשימות איטיות לפי מכונות וירטואליות ספציפיות). |
|
מדדי הזיהוי של משימות איטיות שימושיים במיוחד לעומסי עבודה גדולים של למידת מכונה, מהסיבות הבאות:
עומסי עבודה גדולים של למידת מכונה רגישים מאוד למשימות איטיות. עומסי עבודה גדולים של למידת מכונה משתמשים במחשוב סינכרוני ומבוזר באופן נרחב. (במילים אחרות, יש להם הרבה רכיבים שתלויים זה בזה ופועלים בו-זמנית). בארכיטקטורה הזו, עומסי עבודה של למידת מכונה בקנה מידה גדול רגישים מאוד לכשלים בנקודה אחת, כמו משימות איטיות.
קשה מאוד לזהות ולאתר את המשימות שמתעכבות בעומסי עבודה גדולים של למידת מכונה. לשם המחשה, יש שני סוגים של כשלים בנקודה בודדת:
כשלים שגורמים לעצירה: כשלים שגורמים לכל המערכת לעצור, למשל שגיאות מארח ואירועי תחזוקה. קל יחסית לזהות ולפתור אותן.
כשלים איטיים: כשלים שגורמים לירידה חמורה בביצועים בלי קריסות. קשה מאוד לאתר אותן ולנפות את הבאגים שגורמים להן.
בגלל האופי של כשלים איטיים, קשה מאוד להבחין במשימות איטיות ולאתר אותן, במיוחד בעומסי עבודה סינכרוניים בקנה מידה גדול.
מדדי זיהוי של עומסי עבודה שלא מגיבים
מדדי הזיהוי של עומסי עבודה שלא מגיבים עוזרים לכם:
- לזהות מתי עומס עבודה שלם נתקע (לפעמים נקרא NCCL hang)
- להבין למה עומס העבודה נתקע, למשל אם זה נגרם בגלל קריסה של תהליך או רשת שנתקעה
כדי לזהות ולאבחן עומסי עבודה שלא מגיבים במכונות, אתם יכולים להשתמש במדדים הבאים:
| שם | סוג מדד | סדרות מכונות נתמכות | תיאור |
|---|---|---|---|
| אירועים של עומסי עבודה שלא מגיבים, שזוהו באמצעות טלמטריית NCCL | instance/gpu/nccl_hang |
A4X Max, A4X, A4 ו-A3 Ultra | מספר האירועים שזוהו של עומסי עבודה שלא מגיבים, כסדרת נתונים לאורך זמן. |
הפעלת זיהוי של עומסי עבודה שלא מגיבים
כדי להפעיל זיהוי של עומסי עבודה שלא מגיבים, צריך להפעיל את CoMMA עם טלמטריית פעימות לב, אות פינג תקופתי שמציין שעומס העבודה פועל. בגרסאות האחרונות של CoMMA, ההגדרה הזו מופעלת כברירת מחדל. עם זאת, אם אתם משתמשים בגרסה של CoMMA מגרסה 1.1.1 של חבילת NICCL/gIB, אתם צריכים להפעיל באופן ידני את הטלמטריה של פעימות הלב. כדי לבדוק באיזו גרסה של חבילת NICCL/gIB אתם משתמשים, קראו את המאמר בדיקת הגרסה של NCCL ו-gIB.
כדי להפעיל באופן ידני את הטלמטריה של אותות חיים ב-CoMMA, צריך לציין את משתני הסביבה הבאים בסביבת האימון:
NCCL_PROFILER_HEARTBEAT=true
NCCL_PROFILER_HEARTBEAT_UPLOAD_INTERVAL=10s
משתמשים במדיניות NCCL_PROFILER_HEARTBEAT כדי להפעיל או להשבית את הטלמטריה של האותות, ובמדיניות NCCL_PROFILER_HEARTBEAT_UPLOAD_INTERVAL כדי לציין את התדירות של הטלמטריה של האותות. מידע נוסף זמין במאמר משתני סביבה של CoMMA.
השבתת הזיהוי של עומסי עבודה שלא מגיבים
כדי להשבית את הזיהוי של עומסי עבודה שלא מגיבים, משביתים את הטלמטריה של פעימות הלב ב-CoMMA על ידי ציון משתנה הסביבה הבא בסביבת האימון:
NCCL_PROFILER_HEARTBEAT=false
למה עומסי העבודה לא מגיבים
כדי להבין למה עומס עבודה לא מגיב, בודקים את הערך של התווית hang_reason:
-
במסוף Google Cloud , נכנסים לדף leaderboard Metrics explorer:
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא Monitoring.
מחפשים את המדד הבא:
compute.googleapis.com/instance/gpu/nccl_hangמשתמשים בתכונה צבירה ובוחרים את התוויות הבאות:
instance_idhang_reason
בטבלה הבאה מפורטים הערכים האפשריים של התווית, המשמעות של הערכים האלה לגבי עומסי העבודה והשלבים הבאים המומלצים.
| ערך התווית | תיאור | מה מומלץ לעשות בשלב הזה? |
|---|---|---|
MissingHeartbeatIssue |
הטלמטריה של האותות החיוניים הופסקה בדרגה אחת או יותר, מה שבדרך כלל מצביע על קריסה קריטית של תהליך או צומת. |
|
StalledRankIssue |
עדיין מתקבלים נתוני טלמטריה של אותות חיים, אבל הדירוגים לא מתקדמים בפעולות NCCL. |
|
MissingCommunicatorIssue |
כל הדרגות ששייכות למתקשר NCCL הפסיקו להתקדם. |
|
NoHangIssue |
ערך ברירת המחדל. לא זוהו בעיות. |
|
הצגת המדדים
כדי לראות את המדדים של המכונות ושל אשכולות Slurm, משתמשים בלוחות הבקרה של Monitoring:
כדי לראות את המדדים של התשתית ואת המדדים של זיהוי המשימות האיטיות:
כדי לקבל סקירה כללית מהירה על התקינות והביצועים של התשתית, או כדי להתאים אישית מרכז בקרה קיים, השתמשו במרכזי בקרה מוכנים מראש.
לצרכים ספציפיים של מעקב, צרו מרכזי בקרה בהתאמה אישית.
כדי לראות את מדדי עומסי העבודה של למידת המכונה, קראו את המאמר הגדרת מעקב אחרי עומסי העבודה.
כדי לראות את היומנים של זיהוי המשימות האיטיות, עיינו ביומני זיהוי המשימות האיטיות.
אם נתקלתם בבעיות בשימוש במרכז הבקרה, תוכלו להיעזר במאמר פתרון בעיות של ביצועים איטיים.
שימוש במרכזי בקרה מוכנים מראש
אתם יכולים להשתמש בלוחות הבקרה של Monitoring שנוצרו מראש ל-AI Hypercomputer כדי להציג מדדים של המכונות ואשכולות Slurm. אפשר גם ליצור עותק של מרכז בקרה מוכן מראש ולשנות אותו בהתאם לצרכים שלכם.
כדי להשתמש במרכז בקרה מוכן מראש ל-AI Hypercomputer:
-
נכנסים לדף Dashboards במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא Monitoring.
בעמודה Name, לוחצים על השם של אחד ממרכזי הבקרה הבאים, בהתאם למדדים שרוצים לראות:
כדי לעקוב אחרי התקינות של המכונות, הביצועים של ה-GPU וזיהוי המשימות האיטיות, משתמשים בלוח הבקרה Cluster Director Health Monitoring.
כדי להבין איך משתמשים במדדים האלה כדי לזהות ולנתח בעיות, אתם יכולים להיעזר גם במרכז הבקרה של הפלייבוק GCE Interactive Playbook - Cluster Director Health Monitoring.
כדי לעקוב אחרי יעילות השידור ברשת, משתמשים בלוח הבקרה Cluster Director Transmission Efficiency.
כדי לעקוב אחרי יעילות הרשת בין בלוקים ותת-בלוקים, משתמשים בלוח הבקרה Cluster Director Block Network.
כדי לקבל מידע נוסף על השימוש במדדים האלה לזיהוי ולניתוח בעיות, אפשר גם להשתמש בלוח הבקרה של ה-playbook GCE Interactive Playbook - Cluster Director Block Network.
דף הפרטים של מרכז הבקרה שבחרתם נפתח. אתם יכולים להשתמש בבורר טווח הזמן בסרגל הכלים כדי לשנות את טווח הזמן של הנתונים.
אופציונלי: כדי ליצור עותק של מרכז בקרה ולהתאים אותו אישית לצרכים שלכם, לוחצים על Copy dashboard.
יצירת מרכזי בקרה בהתאמה אישית
כדי ליצור לוח בקרה בהתאמה אישית ב-Monitoring, מבצעים את הפעולות הבאות:
בוחרים את המדדים שרוצים לעקוב אחריהם. אם עדיין לא עשיתם זאת, עיינו בקטע המדדים הזמינים במסמך הזה.
צפייה ביומני הזיהוי של משימות איטיות
כדי להציג את יומני הזיהוי של משימות איטיות באמצעות ה-Logs Explorer:
-
נכנסים לדף Logs Explorer ב- במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה עם כותרת המשנה Logging.
כברירת מחדל, הדף שולח שאילתות לכל היומנים בפרויקט. לוחצים על עצירת השאילתה.
בסרגל הכלים, משתמשים בבורר טווח התאריכים כדי לבחור את טווח התאריכים שרוצים לנתח.
בחלונית Query, מזינים שאילתה ליומני זיהוי של משימות איטיות.
לוחצים על Run Query.
הדוגמה הבאה מציגה רשומה ביומן של זיהוי משימות איטיות.
{
...
"jsonPayload": {
...
"@type": "type.googleapis.com/ml.aitelemetry.performancedebugging.output.NetworkStragglersOutput",
"suspectedStragglersDetection": {
"numNodes": 4,
"nodes": [
{
"latencyMs": 9,
"instanceId": "INSTANCE_ID_1"
},
{
"latencyMs": 9,
"instanceId": "INSTANCE_ID_2"
},
{
"instanceId": "INSTANCE_ID_3",
"latencyMs": 4
},
{
"instanceId": "INSTANCE_ID_4",
"latencyMs": 0
}
],
"message": "Suspected stragglers detected."
}
},
"resource": {
"type": "project",
"labels": {
"project_id": "PROJECT_NUMBER"
}
},
...
"severity": "INFO",
"logName": "projects/PROJECT_ID/logs/compute.googleapis.com%2Fworkload_diagnostic",
...
}
הרשומה ביומן כוללת את השדות הבאים:
-
numNodes: מספר המכונות החשודות כחריגות שזוהו בפרויקט. בדוגמה הזו זוהו ארבעה מופעי מחשוב שחשודים כאיטיים. -
instanceId: המזהה של מכונה שזוהתה כחשודה כאיטית.
המאמרים הבאים
- תצפית ומעקב אחרי מכונות וירטואליות
- התאמה אישית של לוחות בקרה לשירותי Google Cloud
- פתרון בעיות של ביצועים איטיים