こんにちは
ALJの江口と申します。
皆さん、Zabbixは使っているでしょうか。
弊社には、LLMに共用サーバーを利用しています。LLMには強力なGPUとメモリを搭載しているマシンが必要ですが、台数は限定されちゃいます。
共用なので、マシンの空き状況が気になりますが、実際に利用されている状況を確認する方法として、Zabbixで確認する方法を取りましたので、紹介します。
GPUの負荷を監視する方法
ZabbixエージェントにAMDのGPU負荷が取れるか調べたところ、標準では対応していないようで、プラグインも探してみましたが、見つかりませんでした。
NVidiaのGPUであれば、プラグインが公開されていますので、これを利用すれば良いようです。
ZabbixAgentが標準で対応していないので、今回は、Windowsのパフォーマンスカウンターで直接値を取り、Zabbixに投げようと思います。
設定方法
設定方法は3段階。
パワーシェルを用意する
$sum = (Get-Counter "\GPU Engine(*)\Utilization Percentage").CounterSamples |
Measure-Object -Property CookedValue -Sum |
Select-Object -ExpandProperty Sum
# 小数を見やすくまるめる
[math]::Round($sum, 4)
Zabbix Agent 設定に UserParameter追加
zabbix_agentd.conf に include 設定されていると思うので、include先に追加
UserParameter=gpu.engine.util.sum,powershell -NoProfile -ExecutionPolicy Bypass -File "C:\zabbix\scripts\gpu_engine_sum.ps1"
Zabbix側のアイテム設定
| アイテム設定 | 値 |
|---|---|
| タイプ: | Zabbixエージェント |
| キー: | gpu.engine.util.sum |
| データ型: | 数値(浮動小数) |
| 監視間隔: | 10s~60s(用途次第) |
Zabbix Agentの動作確認
上記の設定を終えたら、Zabbix Agentを再起動し、以下のコマンドで値が取得可能か確認してください。
zabbix_get -s <zabbix agentのIPアドレス> -p 10050 -k gpu.engine.util.sum
あとはグラフ化
値が取得できたら、Zabbix でグラフ化することができます。
GPUサーバーはリソースが限られており、利用状況が共有できると、より有効活用に役立つと思います。
以上です

