Pemantauan GPU memanfaatkan NVIDIA Data Center GPU Manager (DCGM) untuk membangun sistem pemantauan GPU yang andal. Topik ini menjelaskan cara mengaktifkan pemantauan GPU untuk kluster.
Prasyarat
Anda telah menambahkan node GPU ke kluster.
Anda telah mengaktifkan ARMS.
Informasi latar belakang
Untuk mengelola perangkat GPU skala besar dalam kluster Kubernetes, Anda memerlukan sistem pemantauan yang komprehensif. Dengan memantau metrik GPU, Anda dapat memahami penggunaan GPU, status kesehatan, dan kinerja beban kerja di seluruh kluster. Hal ini membantu Anda mendiagnosis masalah dengan cepat, mengoptimalkan alokasi sumber daya GPU, serta meningkatkan pemanfaatan sumber daya. Selain insinyur O&M, peran lain seperti ilmuwan data dan insinyur algoritma AI juga dapat menggunakan metrik ini untuk memahami penggunaan GPU layanan mereka, yang berguna dalam perencanaan kapasitas dan penjadwalan tugas.
NVIDIA menyediakan DCGM untuk mengelola GPU dalam kluster skala besar. Sistem pemantauan GPU berbasis NVIDIA DCGM menawarkan fitur andal dan berbagai metrik pemantauan GPU. Fitur utamanya meliputi:
Pemantauan perilaku GPU
Manajemen konfigurasi GPU
Manajemen kebijakan GPU
Diagnostik kesehatan GPU
Statistik tingkat GPU dan tingkat thread
Konfigurasi dan pemantauan NVSwitch
Batasan
Driver NVIDIA pada node harus versi 418.87.01 atau lebih baru. Anda dapat masuk ke node GPU dan menjalankan perintah
nvidia-smiuntuk memeriksa versi driver.Untuk menggunakan Metrik Profiling GPU, driver NVIDIA pada node harus versi 450.80.02 atau lebih baru. Untuk informasi lebih lanjut tentang Metrik Profiling GPU, lihat Ikhtisar Fitur.
Pemantauan untuk NVIDIA MIG tidak didukung.
Penagihan
Untuk informasi lebih lanjut tentang kebijakan penagihan Alibaba Cloud Prometheus, lihat Ikhtisar penagihan.
1. Aktifkan pemantauan Prometheus
Pastikan komponen ack-arms-prometheus berada pada versi 1.1.7 atau lebih baru. Anda dapat melihat versi komponen ack-arms-prometheus dan melakukan peningkatan jika diperlukan.
Untuk informasi lebih lanjut tentang cara mengaktifkan pemantauan Prometheus, lihat Aktifkan pemantauan Prometheus untuk ACK.
Jika Anda menggunakan layanan Prometheus open-source yang dikelola sendiri dan memerlukan kemampuan pemantauan GPU, Anda harus menginstal komponen ack-gpu-exporter.
2. Deploy aplikasi contoh
Buat file bernama tensorflow-benchmark.yaml dengan konten berikut.
apiVersion: batch/v1 kind: Job metadata: name: tensorflow-benchmark spec: parallelism: 1 template: metadata: labels: app: tensorflow-benchmark spec: containers: - name: tensorflow-benchmark image: registry.cn-beijing.aliyuncs.com/ai-samples/gpushare-sample:benchmark-tensorflow-2.2.3 command: - bash - run.sh - --num_batches=50000 - --batch_size=8 resources: limits: nvidia.com/gpu: 1 # Request one GPU. workingDir: /root restartPolicy: NeverJalankan perintah berikut untuk mendeploy aplikasi tensorflow-benchmark pada node GPU.
kubectl apply -f tensorflow-benchmark.yamlJalankan perintah berikut untuk memeriksa status pod.
kubectl get podOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE tensorflow-benchmark-k*** 1/1 Running 0 114s
3. Lihat data pemantauan GPU untuk kluster
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel sebelah kiri, pilih .
Pada halaman Prometheus Monitoring, klik tab GPU Monitoring, lalu klik tab Cluster GPU Monitoring - Application Pod Dimension.
Data pemantauan menunjukkan bahwa pod GPU sedang berjalan pada node cn-beijing.10.131.xx.xxx.

Klik tab Cluster GPU Monitoring - Node Dimension dan atur GPUNode menjadi cn-beijing.10.131.xx.xxx untuk melihat informasi GPU terperinci untuk node tersebut. Untuk informasi lebih lanjut tentang parameter tersebut, lihat Deskripsi dashboard.

FAQ
Kebocoran memori DCGM
Latar Belakang: DCGM adalah alat yang disediakan oleh NVIDIA untuk mengelola dan memantau GPU.
ack-prometheus-gpu-exporteradalah pod DaemonSet yang dimulai setelah Anda menginstal komponen Managed Service for Prometheus.Penyebab: Kebocoran memori DCGM terjadi ketika memori yang digunakan oleh DCGM tidak dilepaskan dengan benar selama waktu proses, sehingga menyebabkan penggunaan memori terus meningkat.
Solusi: DCGM mungkin mengalami kebocoran memori. Untuk mengatasi masalah ini, pengaturan
resources.limitsdikonfigurasi untuk pod tempatack-prometheus-gpu-exporterberjalan. Ketika penggunaan memori mencapai batas,ack-prometheus-gpu-exporterakan dimulai ulang, yang biasanya terjadi sekitar sekali sebulan. Setelah dimulai ulang, pod tersebut melaporkan metrik secara normal. Namun, selama beberapa menit setelah dimulai ulang, Grafana mungkin menampilkan beberapa metrik secara tidak normal, seperti lonjakan jumlah node. Tampilan akan kembali normal setelahnya. Untuk informasi lebih lanjut tentang masalah ini, lihat Apakah DCGM mengalami kebocoran memori?.
ack-prometheus-gpu-exporter mengalami OOM kill
Latar Belakang:
ack-prometheus-gpu-exporteradalah pod DaemonSet yang dimulai setelah Anda menginstal komponen Managed Service for Prometheus. Pod ini mungkin menyebabkan masalah saat Anda mengaktifkan pemantauan.Penyebab:
ack-prometheus-gpu-exporterpada kluster ACK menggunakan DCGM dalam mode embedded. Dalam mode ini, DCGM mengonsumsi banyak memori pada node multi-GPU dan rentan terhadap kebocoran memori. Oleh karena itu, jika Anda menjalankan beberapa proses GPU pada instans dengan beberapa GPU dan mengalokasikan memori dalam jumlah kecil keack-prometheus-gpu-exporter, pod exporter tersebut mungkin dihentikan oleh event kehabisan memori (OOM).Solusi: Dalam kasus ini, pod biasanya melanjutkan pelaporan metrik setelah dimulai ulang. Jika OOM kill terjadi secara sering, Anda dapat secara manual menambah batas memori
limitsuntuk DaemonSetack-prometheus-gpu-exporterdi namespacearms-promuntuk mengatasi masalah tersebut.
ack-prometheus-gpu-exporter melaporkan error
Latar Belakang:
ack-prometheus-gpu-exporteradalah pod DaemonSet yang dimulai setelah Anda menginstal komponen Managed Service for Prometheus. Error dari pod ini dapat menyebabkan masalah pemantauan.Penyebab: Masalah ini terjadi jika log pod
ack-prometheus-gpu-exporterberisi pesan error yang mirip dengan berikut:failed to get all process informations of gpu nvidia1,reason: failed to get gpu utilizations for all processes on device 1,reason: Not FoundError ini terjadi karena versi lama
ack-prometheus-gpu-exportertidak dapat mengambil metrik GPU untuk kontainer terkait ketika tidak ada tugas tertentu yang berjalan pada kartu GPU tertentu.Solusi: Masalah ini telah diperbaiki pada versi terbaru. Untuk mengatasi masalah ini, tingkatkan komponen ack-arms-prometheus ke versi terbaru.