gpu-mon 是open-falcon用于监控GPU状态的一个插件,可以对GPU的状态(显存使用、设备温度等)进行监控。
-
详细的监控项说明可以参考metric文件,其中常用的一些监控项说明如下:
GPUUtils GPU 使用率 (%) MemUtils GPU 显存使用率(%) FBUsed GPU 的显存占用(MB) Performance GPU 的性能状态(0-15, 其中0表示最高) DeviceTemperature 当前GPU设备温度(℃) PowerUsed GPU的功率使用 SingleBitError 全部累积的单精度ECC错误 DoubleBitError 全部累积的双精度ECC错误
-
在metric信息上报中,如果一些监控项采集到的数据异常,会上报 -1 值
-
对于
GPUUtils
、MemUtils
、FBUsed
监控项的值,可以通过type=sum
和type=ave
tag来查看在整个设备上的全部使用情况和平均使用情况 -
对于单个GPU卡的相关监控项查看,可以通过
GpuID
tag来查看(如GpuId = 0
)。
-
安装dcgm(1.4.2版本)并开启nv-hostengine进程
-
目前能够支持DCGM 1.4.2版本全部功能的GPU型号包括:
- K80及K80以后的Tesla GPU
- Maxwell及更新的非Tesla GPU
关于 Dcgm支持的GPU型号及DCGM安装可以参考(DCGM) NVIDIA Data Center GPU Manager
-
目前插件已测试支持的GPU型号包括:v100、p4、p40。
目前支持两种方式推送数据到open-falcon, 分别是设置crontab定时推送、作为falcon的插件推送
-
编译GPU监控文件
go get -u github.com/open-falcon/gpu-mon cd $GOPATH/src/github.com/open-falcon/gpu-mon make
-
编辑crontab 的配置文件,设置定时任务
# WORKPATH 为 gpu-mon 和 cfg.json 所在目录 echo '* * * * * cd ${WORKPATH} && ./gpu-mon -c cfg.json ' >> /var/spool/cron/root
-
编译GPU监控文件
go get -u github.com/open-falcon/gpu-mon cd $GOPATH/src/github.com/open-falcon/gpu-mon make
-
复制
gpu-mon
、cfg.json
、60_gpuMonitor.sh
文件到 open-falcon 安装路径的plugin目录下
配置文件参考cfg.example.json文件,相关配置项说明如下:
{
"falcon": {
// Agent: 上报falcon客户端的地址
"Agent": "http://127.0.0.1:1988/v1/agent"
},
"metric":{
// ignoreMetrics: 不进行上报的GPU监控配置项
"ignoreMetrics": [
],
// endpoint值,默认为机器主机名
"endpoint": ""
},
"log":{
// logLevel: 日志级别,支持:Info、Warn、Error和Debug,默认为Warn
"level": "Warn",
// logDir: 日志存储目录
"dir": "./logs"
}
}