השילוב של NVIDIA Data Center GPU Manager אוסף מדדים מתקדמים של GPU מ-DCGM. אפשר להגדיר את סוכן תפעול לאיסוף של אחד משני סטים שונים של מדדים על ידי בחירת הגרסה של dcgm receiver:
- גרסה 2 של רכיב
dcgmreceiver מספקת מערך מדדים שנבחר בקפידה למעקב אחרי הביצועים והמצב של יחידות ה-GPU שמצורפות למכונה וירטואלית נתונה. - גרסה 1 של
dcgmreceiver מספקת קבוצה של מדדי פרופיל שנועדו לשימוש בשילוב עם מדדי ברירת המחדל של GPU. מידע על המטרה של המדדים האלה ועל אופן הפרשנות שלהם מופיע במאמר מדדי פרופילים בסקירה הכללית על התכונה DCGM.
מידע נוסף על NVIDIA Data Center GPU Manager זמין במסמכי התיעוד של DCGM. השילוב הזה תואם ל-DCGM מגרסה 3.1 עד 3.3.9.
המדדים האלה זמינים רק במערכות Linux. לא נאספים מדדים של פרופילים מדגמי GPU של NVIDIA P100 ו-P4.
דרישות מוקדמות
כדי לאסוף מדדים של NVIDIA DCGM, צריך לבצע את הפעולות הבאות:
-
- מדדים מגרסה 1: סוכן תפעול מגרסה 2.38.0 ואילך. רק סוכן תפעול בגרסה 2.38.0 או בגרסה 2.41.0 ומעלה תואם לניטור GPU. אל תתקינו את גרסאות סוכן תפעול 2.39.0 ו-2.40.0 במכונות וירטואליות עם יחידות GPU מצורפות. מידע נוסף זמין במאמר בנושא קריסות של סוכנים ודיווחים על NVIDIA.
- מדדים מגרסה 2: סוכן תפעול מגרסה 2.51.0 ואילך.
התקנה של DCGM ואימות ההתקנה
צריך להתקין את DCGM בגרסה 3.1 עד 3.3.9 ולוודא שהוא פועל כשירות עם הרשאות מיוחדות. הוראות להתקנת DCGM מופיעות במאמר בנושא התקנה במסמכי DCGM.
כדי לוודא ש-DCGM פועל בצורה תקינה:
מריצים את הפקודה הבאה כדי לבדוק את הסטטוס של שירות DCGM:
sudo service nvidia-dcgm status
אם השירות פועל, השירות
nvidia-dcgmמופיע ברשימה בתורactive (running). הפלט אמור להיראות כך:● nvidia-dcgm.service - NVIDIA DCGM service Loaded: loaded (/usr/lib/systemd/system/nvidia-dcgm.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2023-01-07 15:24:29 UTC; 3s ago Main PID: 24388 (nv-hostengine) Tasks: 7 (limit: 14745) CGroup: /system.slice/nvidia-dcgm.service └─24388 /usr/bin/nv-hostengine -n --service-account nvidia-dcgmמריצים את הפקודה הבאה כדי לוודא שהמכשירים של ה-GPU נמצאו:
dcgmi discovery --list
אם נמצאו מכשירים, הפלט ייראה כך:
1 GPU found. +--------+----------------------------------------------------------------------+ | GPU ID | Device Information | +--------+----------------------------------------------------------------------+ | 0 | Name: NVIDIA A100-SXM4-40GB | | | PCI Bus ID: 00000000:00:04.0 | | | Device UUID: GPU-a2d9f5c7-87d3-7d57-3277-e091ad1ba957 | +--------+----------------------------------------------------------------------+
הגדרת סוכן תפעול ל-DCGM
פועלים לפי המדריך בנושא הגדרת Ops Agent, מוסיפים את הרכיבים הנדרשים לאיסוף טלמטריה משירות DCGM ומפעילים מחדש את הסוכן.
הגדרה לדוגמה
הפקודות הבאות יוצרות את ההגדרה לאיסוף ולהוספה של מדדים של גרסה 2 של מקלט NVIDIA DCGM:
אם רוצים לאסוף רק מדדי פרופיל של DCGM, צריך להחליף את הערך של השדה receiver_version ב-1. אפשר גם להסיר לגמרי את הערך receiver_version. גרסת ברירת המחדל היא 1.
אי אפשר להשתמש בשתי הגרסאות בו-זמנית.
כדי שהשינויים האלה ייכנסו לתוקף, צריך להפעיל מחדש את Ops Agent:
- כדי להפעיל מחדש את הסוכן, מריצים את הפקודה הבאה במופע:
sudo systemctl restart google-cloud-ops-agent
- כדי לוודא שהסוכן הופעל מחדש, מריצים את הפקודה הבאה ומוודאים שהרכיבים Metrics Agent ו-Logging Agent הופעלו:
sudo systemctl status "google-cloud-ops-agent*"
אם מופיעה הודעת שגיאה כמו "לא ניתן להתחבר לדמון DCGM בכתובת
localhost:5555 ב-libdcgm.so לא נמצא; האם דמון DCGM פועל?", כנראה שהתקנתם את גרסה 4.0 של שירות DGCM. הספרייה המשותפת של DCGM שונתה ל-libdgcdm.so.4, שהמקלט של DCGM בסוכן תפעול לא מזהה. חובה להשתמש ב-DCGM מגרסה 3.1 עד 3.3.9.
אם אתם משתמשים בחשבון שירות בהתאמה אישית במקום בחשבון השירות שמוגדר כברירת מחדל של Compute Engine, או אם יש לכם מכונה וירטואלית ישנה מאוד של Compute Engine, יכול להיות שתצטרכו לתת הרשאה לסוכן התפעול.
הגדרת איסוף מדדים
כדי להטמיע מדדים מ-NVIDIA DCGM, צריך ליצור מקלט למדדים ש-NVIDIA DCGM מייצרת, ואז ליצור צינור למקלט החדש.
המקלט הזה לא תומך בשימוש בכמה מופעים בהגדרה, למשל כדי לעקוב אחרי כמה נקודות קצה. כל המקרים האלה כותבים לאותה סדרת זמן, ואין ל-Cloud Monitoring דרך להבחין ביניהם.
כדי להגדיר נמען למדדים של dcgm, צריך לציין את השדות הבאים:
| שדה | ברירת מחדל | תיאור |
|---|---|---|
collection_interval |
60s |
משך זמן, כמו 30s או 5m. |
endpoint |
localhost:5555 |
הכתובת של שירות DCGM, בפורמט host:port. |
receiver_version |
1 |
1 או 2. בגרסה 2 יש הרבה יותר מדדים זמינים. |
type |
הערך חייב להיות dcgm. |
מה נבדק
בטבלאות הבאות מפורטים המדדים שנאספים על ידי סוכן תפעול ממופע NVIDIA DGCM. לא כל המדדים זמינים לכל הדגמים של יחידות ה-GPU. לא נאספים מדדים של פרופילים מדגמי GPU של NVIDIA P100 ו-P4.
מדדים בגרסה 1
המדדים הבאים נאספים באמצעות גרסה 1 של מקלט dcgm.
| סוג המדד | |
|---|---|
| סוג, סוג משאבים במעקב |
תוויות |
workload.googleapis.com/dcgm.gpu.profiling.dram_utilization **
|
|
GAUGE, DOUBLEgce_instance |
gpu_numbermodeluuid
|
workload.googleapis.com/dcgm.gpu.profiling.nvlink_traffic_rate **
|
|
GAUGE, INT64gce_instance |
directiongpu_numbermodeluuid
|
workload.googleapis.com/dcgm.gpu.profiling.pcie_traffic_rate **
|
|
GAUGE, INT64gce_instance |
directiongpu_numbermodeluuid
|
workload.googleapis.com/dcgm.gpu.profiling.pipe_utilization **
|
|
GAUGE, DOUBLEgce_instance |
gpu_numbermodelpipe ‡uuid
|
workload.googleapis.com/dcgm.gpu.profiling.sm_occupancy **
|
|
GAUGE, DOUBLEgce_instance |
gpu_numbermodeluuid
|
workload.googleapis.com/dcgm.gpu.profiling.sm_utilization **
|
|
GAUGE, DOUBLEgce_instance |
gpu_numbermodeluuid
|
† לא זמין בדגמי GPU P100 ו-P4.
‡ בשביל L4, הערך pipe fp64 לא נתמך.
מדדים בגרסה 2
המדדים הבאים נאספים באמצעות גרסה 2 של מקלט dcgm.
| סוג המדד | |
|---|---|
| סוג, סוג משאבים במעקב |
תוויות |
workload.googleapis.com/gpu.dcgm.clock.frequency
|
|
GAUGE, DOUBLEgce_instance |
gpu_numbermodeluuid
|
workload.googleapis.com/gpu.dcgm.clock.throttle_duration.time
|
|
CUMULATIVE, DOUBLEgce_instance |
gpu_numbermodeluuidviolation *
|
workload.googleapis.com/gpu.dcgm.codec.decoder.utilization
|
|
GAUGE, DOUBLEgce_instance |
gpu_numbermodeluuid
|
workload.googleapis.com/gpu.dcgm.codec.encoder.utilization
|
|
GAUGE, DOUBLEgce_instance |
gpu_numbermodeluuid
|
workload.googleapis.com/gpu.dcgm.ecc_errors
|
|
CUMULATIVE, INT64gce_instance |
error_typegpu_numbermodeluuid
|
workload.googleapis.com/gpu.dcgm.energy_consumption
|
|
CUMULATIVE, DOUBLEgce_instance |
gpu_numbermodeluuid
|
workload.googleapis.com/gpu.dcgm.memory.bandwidth_utilization
|
|
GAUGE, DOUBLEgce_instance |
gpu_numbermodeluuid
|
workload.googleapis.com/gpu.dcgm.memory.bytes_used
|
|
GAUGE, INT64gce_instance |
gpu_numbermodelstateuuid
|
workload.googleapis.com/gpu.dcgm.nvlink.io ‡
|
|
CUMULATIVE, INT64gce_instance |
directiongpu_numbermodeluuid
|
workload.googleapis.com/gpu.dcgm.pcie.io ‡
|
|
CUMULATIVE, INT64gce_instance |
directiongpu_numbermodeluuid
|
workload.googleapis.com/gpu.dcgm.pipe.utilization ‡
|
|
GAUGE, DOUBLEgce_instance |
gpu_numbermodelpipe §uuid
|
workload.googleapis.com/gpu.dcgm.sm.utilization ‡
|
|
GAUGE, DOUBLEgce_instance |
gpu_numbermodeluuid
|
workload.googleapis.com/gpu.dcgm.temperature
|
|
GAUGE, DOUBLEgce_instance |
gpu_numbermodeluuid
|
workload.googleapis.com/gpu.dcgm.utilization
|
|
GAUGE, DOUBLEgce_instance |
gpu_numbermodeluuid
|
† במקרים של P100 ו-P4, נתמכים רק הערכים violation power, thermal ו-sync_boost.
‡ לא זמין בדגמי GPU P100 ו-P4.
§ בשביל רמה 4, הערך pipe fp64 לא נתמך.
מדדי GPU
בנוסף, ההגדרה המובנית של סוכן תפעול אוספת גם מדדיםagent.googleapis.com/gpu שמדווחים על ידי
ספריית הניהול (NVML) של NVIDIA.
כדי לאסוף את המדדים האלה לא צריך לבצע הגדרות נוספות ב-סוכן תפעול, אבל צריך
ליצור את ה-VM עם יחידות GPU מצורפות ו
להתקין את מנהל ההתקן של ה-GPU. מידע נוסף זמין במאמר מידע על מדדי gpu. המדדים של dcgm receiver version 1 נועדו להשלים את מדדי ברירת המחדל האלה, ואילו המדדים של dcgm receiver version 2 נועדו לעמוד בפני עצמם.
אימות ההגדרה
בקטע הזה מוסבר איך לוודא שהגדרתם נכון את מקלט NVIDIA DCGM. יכול להיות שיעברו דקה או שתיים עד שהסוכן של Ops יתחיל לאסוף נתוני טלמטריה.
כדי לוודא שמדדי NVIDIA DCGM נשלחים אל Cloud Monitoring, מבצעים את הפעולות הבאות:
-
במסוף Google Cloud , עוברים לדף leaderboard Metrics explorer:
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Monitoring.
- בסרגל הכלים של חלונית הכלי ליצירת שאילתות, לוחצים על הלחצן ששמו הוא code MQL או code PromQL.
- מוודאים שהאפשרות PromQL נבחרה במתג שפה. המתג לשפה נמצא באותו סרגל כלים שבו אפשר לעצב את השאילתה.
- כדי להציג מדדים מגרסה 1, מזינים את השאילתה הבאה בעורך ולוחצים על Run query:
{"workload.googleapis.com/dcgm.gpu.profiling.sm_utilization", monitored_resource="gce_instance"} - למדדים בגרסה 2, מזינים את השאילתה הבאה בעורך ולוחצים על Run:
{"workload.googleapis.com/gpu.dcgm.sm.utilization", monitored_resource="gce_instance"}
צפייה בלוח הבקרה
כדי לראות את המדדים של NVIDIA DCGM, צריך להגדיר תרשים או לוח בקרה. השילוב של NVIDIA DCGM כולל לוח בקרה אחד או יותר. כל לוחות הבקרה מותקנים אוטומטית אחרי שמגדירים את השילוב וסוכן Ops מתחיל לאסוף נתונים של מדדים.
אפשר גם לראות תצוגה מקדימה סטטית של מרכזי בקרה בלי להתקין את האינטגרציה.
כדי לראות מרכז בקרה שהותקן:
-
במסוף Google Cloud , עוברים לדף Dashboards:
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Monitoring.
- לוחצים על הכרטיסייה רשימת לוחות בקרה ואז בוחרים בקטגוריה שילובים.
- לוחצים על השם של מרכז הבקרה שרוצים להציג.
אם הגדרתם שילוב אבל לוח הבקרה לא הותקן, צריך לבדוק שסוכן התפעול פועל. אם אין נתוני מדדים לתרשים במרכז הבקרה, ההתקנה של מרכז הבקרה נכשלת. אחרי שסוכן התפעול מתחיל לאסוף מדדים, לוח הבקרה מותקן בשבילכם.
כדי לראות תצוגה מקדימה סטטית של מרכז הבקרה:
-
נכנסים לדף
Integrations במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Monitoring.
- לוחצים על המסנן Compute Engine של פלטפורמת הפריסה.
- מחפשים את הערך של NVIDIA DCGM ולוחצים על הצגת פרטים.
- לוחצים על הכרטיסייה מרכזי בקרה כדי לראות תצוגה מקדימה סטטית. אם מרכז הבקרה מותקן, אפשר ללחוץ על View dashboard (הצגת מרכז הבקרה) כדי לעבור אליו.
מידע נוסף על מרכזי בקרה ב-Cloud Monitoring זמין במאמר בנושא מרכזי בקרה וטבלאות.
מידע נוסף על השימוש בדף Integrations (שילובים) זמין במאמר ניהול שילובים.
מגבלות של DCGM והשהיית פרופילים
שימוש בו-זמני ב-DCGM עלול לגרום לקונפליקט עם שימוש בכמה כלים אחרים למפתחים של NVIDIA, כמו Nsight Systems או Nsight Compute. המגבלה הזו חלה על NVIDIA A100 ועל GPU מדגמים קודמים. מידע נוסף מופיע במאמר בנושא קצב הדגימה של פרופילים בסקירה הכללית על התכונה DCGM.
אם אתם צריכים להשתמש בכלים כמו Nsight Systems בלי הפרעות משמעותיות, אתם יכולים להשהות או להפעיל מחדש את איסוף המדדים באופן זמני באמצעות הפקודות הבאות:
dcgmi profile --pause dcgmi profile --resume
כשהפרופיל מושהה, אף אחד מהמדדים של DCGM שסוכן התפעול אוסף לא מופק מה-VM.
המאמרים הבאים
בסרטון Install the Ops Agent to troubleshoot third-party applications מוסבר איך להשתמש ב-Ansible כדי להתקין את סוכן התפעול, להגדיר אפליקציית צד שלישי ולהתקין לוח בקרה לדוגמה.