摘要: 本文将介绍如何利用阿里云云监控服务提供的自定义监控实现gpu云服务器的gpu监控和报警的可视化,从而达到对gpu使用情况实时掌握的目的。
1 背景
nvidia提供了nvidia-smi命令工具用于查询和监控gpu的相关数据,但是对于使用者来说,每次手动查看很不方便,无法做到实时监控,而且也无法可视化,不直观。
本文将会介绍如何利用阿里云云监控服务提供的自定义监控功能来实现gpu云服务器的gpu监控和报警的可视化。
2 自定义监控和报警
阿里云云监控服务提供了自定义监控功能,用户可以利用它实现自定义的数据监控和报警。
我们利用自定义监控提供的api或者sdk,可以将gpu云主机内采集的gpu数据上报,在云监控控制台上添加相应的gpu监控项,就可以实现对指定gpu实例内指定gpu的相应数据进行监控,对相应监控项设置相应数据的报警规则,就能实现监控数据的自动报警。
比如可以对gpu利用率、显存利用率、显存占用、功率、温度等关键信息进行监控和报警。
详见:创建自定义监控项和报警规则
3 监控数据上报
自定义监控提供的sdk支持python和bash,通过编写脚本调用sdk的接口,可以实现相应监控数据的上报。
通过定时调度脚本,按创建监控项时定义的上报周期上报数据。linux环境可以使用crontab,windows环境可以使用quartz.net。
详见:监控数据上报
4 gpu数据采集
nvdia驱动安装时提供了nvidia management library (nvml),该库提供了采集gpu数据的接口,并基于nvml提供了nvidia-smi命令用于采集gpu相关数据。nvml提供了perl 和python语言的官方支持,考虑到自定义监控上报sdk支持python,我们可以下载nvml的python bindings,编写python脚本采集gpu数据。
nvml的python bindings可以从以下链接下载:https://pypi.python.org/pypi/nvidia-ml-py/
5 示例
5.1 创建自定义监控项
在云监控控制台创建自定义监控项,如下图:
5.2 查看监控项数据
在云监控控制台查看监控项,如下图:
某实例gpu 0的gpu利用率(单位:persent):
某实例gpu 0的显存利用率(单位:persent):
某实例gpu 0的内存占用量(单位:megabytes):
某实例gpu 1的功率(单位:watt):
某实例gpu 1 的温度(单位:摄氏度):
5.3 设置报警规则
在温度监控项上点击报警管理:
设置温度报警规则:
设置通知对象:
完成设置:
6 参考代码
数据采集:
def get_gpu_information(): nvmlinit() devicecount = nvmldevicegetcount() util_list = [] for i in range(0, devicecount): handle = nvmldevicegethandlebyindex(i) util_list.append(nvmldevicegetutilizationrates(handle)) nvmlshutdown() return devicecount, util_list信息上报:
for i in range(0, gpu_count): gpuid = i cms_post.post(userid,gpuutilization,util_list[i].gpu,percent,s.format(ecsid=ecsid, gpuid=gpuid))
原文链接
本文为云栖社区原创内容,未经允许不得转载。
时代万恒表示两条锂离子动力电池生产线相继投产处于试运行状态 尚未实现盈利
命令通道$FCT_CALL的功能
电压可以是负的吗?了解负电压
lpc5411x系列mcu的单核结构与应用
讲解一下容易导致软件问题的5种情况以及应对措施
使用云监控实现GPU云服务器的GPU监控和报警(上) - 自定义监控
华为上半年实现销售收入3109亿元,同比增长3.1%
立柱机器人冶炼工业碳化硅码垛应用案例
亮风台“AR融合指挥解决方案”,用信息化服务警务实战!
基于P C机和T R I O运动控制器的开放式缠绕机数控系统
RTC的特定
工业物联网实现的五个环节和两大阶段
明纬电源——导轨电源15W-480W
ARM发布CORELINK 400系统IP,展现GPU系统潜
iPhone频繁杀后台为什么会更卡顿
联想Z5评测 如果作为旗舰机的话在性能上还差一点
百度智能云将在三大方面重构云计算服务
浅谈能源变革史:可视化开拓能源发展新方向
自己动手拆笔记本需注意的重要事项
过度使用耳机的危害有哪些?怎么合理戴耳机才不会伤害到我们耳朵