使用云监控实现GPU云服务器的GPU监控和报警(上) - 自定义监控

简介: 本文将介绍如何利用阿里云云监控服务提供的自定义监控实现GPU云服务器的GPU监控和报警的可视化,从而达到对GPU使用情况实时掌握的目的。

0
目录

使用云监控实现GPU云服务器的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 创建自定义监控项
在云监控控制台创建自定义监控项,如下图:
1

5.2 查看监控项数据
在云监控控制台查看监控项,如下图:
某实例GPU 0的GPU利用率(单位:Persent):
2

某实例GPU 0的显存利用率(单位:Persent):
3

某实例GPU 0的内存占用量(单位:Megabytes):
4

某实例GPU 1的功率(单位:Watt):
5

某实例GPU 1 的温度(单位:摄氏度):
6

5.3 设置报警规则
在温度监控项上点击报警管理:
7

设置温度报警规则:
8

设置通知对象:
9

完成设置:
10

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))
相关实践学习
RocketMQ监控/告警一站式搭建应用
RocketMQ监控/告警一站式搭建演示
目录
相关文章
|
1月前
|
弹性计算 监控 数据可视化
ecs自定义监控
ecs自定义监控
24 1
|
1月前
|
Arthas 弹性计算 运维
阿里云ECS监控服务
阿里云ECS监控服务
403 2
|
1月前
|
弹性计算 监控 数据可视化
ECS网络流量监控
ECS网络流量监控
60 2
|
1月前
|
弹性计算 运维 监控
ECS监控与管理
ECS监控与管理
35 5
|
30天前
|
弹性计算 运维 监控
ECS资源监控
ECS资源监控涉及CPU、内存、磁盘I/O、网络流量、系统负载和进程的关键指标,通过云服务商控制台、监控服务、API与SDK、运维工具进行实时监控和告警设置。支持历史数据查询、事件监控,以及使用Windows资源监视器和Linux系统工具进行操作系统层面监控。全面监控确保ECS实例稳定运行、资源有效利用和问题及时处理。如需特定云服务商的指导,请询问。
31 3
|
6月前
|
传感器 JSON 监控
Springboot + oshi 实现对服务器硬件的监控
OSHI是一个免费的基于JNA的(本机)Java操作系统和硬件信息库。它不需要安装任何额外的本地库,旨在提供跨平台实现来检索系统信息,如操作系统版本、进程、内存和CPU使用情况、磁盘和分区、设备、传感器等。
258 0
|
5月前
|
监控 数据可视化 Java
visualvm工具远程对linux服务器上的JVM虚拟机进行监控与调优
本文档主要总结在window本地环境远程对linux服务断的JVM虚拟机进行监控与调优的方法。
79 0
|
21天前
|
存储 监控 异构计算
【Python】GPU内存监控脚本
【Python】GPU内存监控脚本
|
1月前
|
弹性计算 运维 监控
ecs监控与评估
阿里云ECS提供全面的监控与评估解决方案,包括云监控服务(实时资源指标、告警)、ECS实例详情页(运行状态查看)、资源负载评估(综合性能得分)、ECS Insight(多维度分析)、报警配置、流量管理优化(负载均衡、CDN)。这些工具帮助用户有效管理资源、识别潜在风险、优化性能,确保云服务稳定高效。
17 1
|
1月前
|
监控 JavaScript 安全
监控内网电脑软件设计与实现:基于Node.js的服务器端架构分析
在当今信息技术高度发达的时代,监控内网电脑的需求日益增长。企业需要确保网络安全,个人用户也需要监控家庭网络以保护隐私和安全。本文将介绍一种基于Node.js的服务器端架构,用于设计和实现监控内网电脑软件。
99 0