HPC Cluster'da Gözlemlenebilirlik: Prometheus, Grafana ve DCGM ile Eksiksiz İzleme
DCGM Exporter, SLURM Exporter, Prometheus ve Grafana kullanarak HPC cluster altyapısında uçtan uca gözlemlenebilirlik nasıl kurulur? Mimari, yapılandırma ve yaygın sorunlar.
HPC ortamlarında “bir şey bozuldu mu?” sorusunun ötesine geçmek gerekir. Yüzlerce node ve binlerce eş zamanlı iş barındıran bir cluster’da arıza tespiti yetmez; arızanın hangi işi etkilediğini, hangi donanım bileşeninin tetiklediğini ve sistemin bütünü üzerindeki etkisini anında görmek gerekir. İşte bu kapasiteye gözlemlenebilirlik diyoruz.
Mimari: Dört Katmanlı Yığın
Endüstri standardı HPC observability yığını dört katmandan oluşur:
Veri Toplama Katmanı, üç temel exporter’dan oluşur. DCGM Exporter, NVIDIA GPU’lardan GPU kullanımı, bellek, sıcaklık, güç tüketimi ve ECC hata sayaçlarını toplar; önerilen scrape aralığı 10 saniyedir. SLURM Exporter, iş zamanlayıcısından kuyruk derinliği, iş durumu, node durumu ve kaynak tahsis verilerini alır; 30 saniyelik aralık yeterlidir. Node Exporter ise her node’da CPU, RAM, disk ve ağ metriklerini 15 saniyede bir toplar.
Depolama ve Sorgulama Katmanı’nda Prometheus yer alır. Tüm exporter’lardan verileri scrape eden Prometheus, zaman serisi veritabanına yazar ve PromQL ile sorgulanabilir hale getirir. Retention süresi ve depolama boyutu cluster büyüklüğüne göre hesaplanmalıdır; 100 node’luk bir kurulum için günlük yaklaşık 10-15 GB veri beklemek gerçekçidir.
Görselleştirme Katmanı’nda Grafana bulunur. Prometheus veri kaynağına bağlanan Grafana, etkileşimli dashboard’lar ve uyarı görselleştirmesi sunar.
Bildirim Katmanı’nda Alertmanager devreye girer. Prometheus’un ürettiği uyarıları birleştirir, susturma ve yönlendirme kurallarına göre e-posta, Slack veya PagerDuty gibi kanallara iletir.
Temel Prometheus Yapılandırması
prometheus.yml dosyasında global scrape aralıklarını ve her exporter için ayrı job tanımlarını yapılandırın:
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets: ["alertmanager:9093"]
rule_files:
- "rules/gpu_alerts.yml"
- "rules/slurm_alerts.yml"
scrape_configs:
- job_name: "dcgm"
static_configs:
- targets: ["gpu-node-01:9400", "gpu-node-02:9400"]
- job_name: "slurm"
static_configs:
- targets: ["slurm-master:8080"]
- job_name: "node"
static_configs:
- targets: ["gpu-node-01:9100", "gpu-node-02:9100"]
Büyük cluster’larda statik hedef listesi yerine Prometheus’un service discovery mekanizmalarını (file_sd veya DNS-SD) kullanmak bakım yükünü önemli ölçüde azaltır.
Kritik Uyarı Kuralları
Etkili uyarı sistemi, yalnızca anlık aşımları değil trendi de izler. GPU için en önemli üç kural şunlardır:
- GPUSicaklikYuksek:
DCGM_FI_DEV_GPU_TEMP > 85ifadesi 5 dakika boyunca geçerliysewarninguyarısı üretilir. - GPUBellekDolmakUzere:
DCGM_FI_DEV_FB_USED / DCGM_FI_DEV_FB_TOTAL > 0.95koşulu 2 dakika kalıcıysacriticaldüzeyinde tetiklenir. - ECCHatasıAlgılandi:
increase(DCGM_FI_DEV_ECC_DBE_VOL_TOTAL[10m]) > 0ifadesi anlık olarakcriticaluyarısı üretir; düzeltilemez bellek hatası donanım değişimi gerektirebilir.
SLURM tarafında kuyruk derinliği ve boşta kalan node’lar için uyarı kuralları kapasite planlamasının temelini oluşturur.
Grafana Dashboard Stratejisi
Her kurulumda dört dashboard grubu oluşturulması önerilir. Cluster Genel Bakış dashboard’u, tüm node’ların GPU/CPU kullanım ısı haritasını, toplam kaynak tahsis oranını ve anlık güç tüketimini tek ekranda sunar. Bu dashboard yöneticilerin operasyonel durumu saniyeler içinde kavramasını sağlar.
GPU Detay Dashboard node başına sıcaklık trendini, bellek bant genişliği kullanımını, NVLink/PCIe trafik oranlarını ve ECC hata geçmişini gösterir. Bir iş beklenenden yavaş ilerliyorsa bu dashboard sorunun node düzeyinde mi yoksa GPU düzeyinde mi olduğunu hemen ortaya koyar.
SLURM İş Analizi dashboard’u kullanıcı ve proje bazında kaynak tüketim raporları ve iş tamamlanma süreleri dağılımı sunar; SLA uyumluluğunu kanıtlamak için kritiktir. Ağ ve Depolama dashboard’u ise InfiniBand veya Ethernet bant genişliği ile BeeGFS/Lustre okuma-yazma performansını izler.
Yaygın Sorunlar ve Çözümleri
DCGM Exporter veri üretmiyor: NVIDIA sürücü sürümü ile DCGM Exporter sürümünün uyumlu olduğundan emin olun. dcgmi discovery -l komutu GPU’ların DCGM tarafından görüldüğünü doğrular.
Prometheus disk dolumu: Varsayılan 15 günlük retention büyük cluster’larda disk sorununa yol açabilir. --storage.tsdb.retention.size parametresiyle boyut sınırı belirleyin ve --storage.tsdb.wal-compression ile sıkıştırmayı etkinleştirin.
Alertmanager uyarı fırtınası: Aynı sorundan kaynaklanan onlarca uyarı operatör yorgunluğuna neden olur. group_by ve group_wait parametrelerini yapılandırarak benzer uyarıları birleştirin. Bilinen bakım pencerelerinde silence kuralları tanımlayın.
SLURM Exporter yetki hatası: Exporter’ın SLURM muhasebe veritabanına erişim yetkisi olmalıdır. slurm_exporter kullanıcısına sacctmgr show user çıktısında gerekli roller atanmış olmalıdır.
Uygulama Sırası
Gözlemlenebilirlik yığınını sıfırdan kurarken önce Node Exporter ve Prometheus’u devreye alın, temel metrik akışını doğrulayın. Ardından DCGM Exporter’ı GPU node’larına ekleyin ve GPU metriklerinin Prometheus’a ulaştığını PromQL sorgusuyla test edin. SLURM Exporter’ı son aşamada ekleyin çünkü bu bileşen SLURM yapılandırmasına en bağımlı olanıdır. Tüm veri kaynakları stabil hale geldikten sonra Grafana dashboard’larını ve Alertmanager kurallarını oluşturun.
Sonuç
HPC cluster’ınıza kapsamlı gözlemlenebilirlik kazandırmak; arıza sürelerini kısaltır, GPU kaynaklarınızın verimini artırır ve SLA taahhütlerinizi veriye dayalı biçimde kanıtlamanızı sağlar. Mevasis’in uçtan uca HPC observability çözümü hakkında detaylı bilgi almak için /cozumler/observability/ sayfasını inceleyin. Mevcut altyapınız için özelleştirilmiş bir mimari ve fiyatlandırma önerisi almak üzere iletişim sayfamızdan bize ulaşın.