השילוב של 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.
כדי לאסוף את המדדים האלה לא צריך לבצע הגדרה נוספת ב-סוכן תפעול, אבל צריך
ליצור את המכונה הווירטואלית עם יחידות GPU מצורפות ו
להתקין את מנהל ההתקן של ה-GPU. מידע נוסף זמין במאמר מידע על מדדי gpu. המדדים של dcgm גרסה 1 של מקבלים נועדו להשלים את מדדי ברירת המחדל האלה, ואילו המדדים של dcgm גרסה 2 של מקבלים נועדו לעמוד בפני עצמם.
אימות ההגדרה
בקטע הזה מוסבר איך לוודא שהגדרתם נכון את מקלט NVIDIA DCGM. יכול להיות שיעברו דקה או שתיים עד שהסוכן של Ops יתחיל לאסוף נתוני טלמטריה.
כדי לוודא שמדדי NVIDIA DCGM נשלחים אל Cloud Monitoring, מבצעים את הפעולות הבאות:
-
נכנסים לדף leaderboard Metrics explorer במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.
- בסרגל הכלים של החלונית ליצירת שאילתות, לוחצים על הלחצן ששמו code 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. המגבלה הזו חלה על מעבדי GPU של NVIDIA A100 ועל מעבדי GPU קודמים. מידע נוסף מופיע במאמר בנושא קצב הדגימה של פרופילים בסקירה הכללית על התכונה DCGM.
אם אתם צריכים להשתמש בכלים כמו Nsight Systems בלי הפרעה משמעותית, אתם יכולים להשהות או להפעיל מחדש את איסוף המדדים באופן זמני באמצעות הפקודות הבאות:
dcgmi profile --pause dcgmi profile --resume
כשמשהים את יצירת הפרופיל, אף אחד מהמדדים של DCGM שנאספים על ידי סוכן תפעול לא מופקים מהמכונה הווירטואלית.
המאמרים הבאים
בסרטון Install the Ops Agent to troubleshoot third-party applications מוסבר איך להשתמש ב-Ansible כדי להתקין את סוכן תפעול, להגדיר אפליקציית צד שלישי ולהתקין לוח בקרה לדוגמה.