Datadog で NVIDIAのGPUをモニタリングします
この記事はDatadog Advent Calendar 2016の5日目の記事です。
普段,NVIDIA DIGITSを使っています。このツールは,使用中のGPUのステータスを表示しているポートレットがあります。私はGPUのステータスをリモートで監視したかったので,Datadogによる監視をしてみようと考えました。DatadogのAgentは,デフォルトではGPUのモニタリング項目はありません。しかし,Datadogは,AgentのCheckスクリプトを自分で簡単に作成・追加することができます。そこで,GPUの状態を監視するスクリプトを作成しました。 NVIDIA Management Libraryを使うことでGPUの詳細なステータスを取得することができます。このAPIをPythonからは nvidia-ml-py
モジュールを使うことで取得ができます。下記がメトリクスとなります。
一年前に書いた当初は4つのメトリクスしかなかったのですが,今では,7項目の取得するが可能となりました。今後は使用電力等を取得したいですね。
メトリクス
- nvml.util.gpu: GPUの使用率
- nvml.util.memory: メモリの使用率
- nvml.mem.total: トータルメモリ
- nvml.mem.used: 使用中メモリ
- nvml.mem.free: 空きメモリ
- nvml.temp: 温度
- nvml.process.used_gpu_memory: プロセス毎の使用メモリ
タグ
- name: GPU名-GPU番号(例: quadro_k1200-1)
コードは以下にあります
現在は,Linuxでしか動きません。