摘要:目前腾讯云提供的云服务器并未提供方面的监控数据,本文旨在通过使用腾讯云的自定义监控服务来自行实现对服务器的使用率的监控。除了命令行工具,也提供了的供开发者使用,本文就基于的用于读取使用率,并将数据上传到腾讯云自定义监控对应接口进行监控。
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~
作者:李想
随着人工智能以及比特币的火热,GPU云服务的使用场景是越来越广,在很多场景下我们也需要获取GPU服务器的性能参数来优化程序的执行。目前腾讯云提供的GPU云服务器并未提供GPU方面的监控数据,本文旨在通过使用腾讯云的“自定义监控”服务来自行实现对GPU服务器的GPU使用率的监控。
1.GPU云服务创建腾讯云GPU云服务器的创建可以参考下面官网的文档,采用云市场提供的GPU服务器专用镜像可以免于自行安装GPU驱动程序。
https://cloud.tencent.com/doc...
使用云市场的镜像创建的服务器,默认已经包含了NVML 管理库(Nvidia Management Library)和 基于NVML的命令行工具nvidia-smi (NVIDIA System Management Interface)。
在服务器上执行nvidia-smi可以获取当前服务器的GPU使用率。
除了nvidia-smi 命令行工具,Nvidia也提供了NVML的Python SDK供开发者使用,本文就基于NVML的python SDK用于读取GPU使用率,并将数据上传到腾讯云自定义监控对应接口进行监控。
https://pypi.python.org/pypi/...
同时需要执行如下命令安装NVML的Python库:
pip install nvidia-ml-py2.自定义监控配置
首先创建监控配置,命名空间是该监控的名字,维度用于定义每一个监控数据,由于一个服务器可能有多个GPU,所以我们这里定义两个维度,server_name用于记录GPU服务器名字,gpu_id用于记录GPU序列号。如果还需监控GPU其他指标可以在监控指标里进行添加。
配置创建完毕需要创建指标统计方式,这里配置统计周期为5分钟,并按照平均值进行统计。
数据上报通过一个Python脚本来实现,脚本主要需要完成下面几个任务。
初始化NVML并调用nvmlDeviceGetCount()读取GPU个数。
计算Signature作为API接口校验和鉴权参数。需要注意数据上报接口跟一般腾讯云API接口不同,并且签名算法也有所不同,具体可参考官方文档
调用NVML接口nvmlDeviceGetUtilizationRates()读取GPU使用率。
将读取的数据进行封装并上传。dimensions需要指定每个维度的值,这里server_name指定为‘testserver’,gpu_id为读取的GPU ID号。
核心部分的代码如下:
nvmlInit() deviceCount = nvmlDeviceGetCount() while True: ts=int(time.time()) nonce=random.randint(10000,100000) text="GETreceiver.monitor.tencentyun.com/v2/index.php?Action=PutMonitorData&Nonce=%d&Region=%s&SecretId=%s&Timestamp=%d" % (nonce,region,secretId,ts) data["Timestamp"]=ts data["Nonce"]=nonce data["Signature"]=hmac.new(secretKey,text,hashlib.sha1).digest().encode("base64").rstrip(" ") for i in range(deviceCount): handle = nvmlDeviceGetHandleByIndex(i) gpu_util = getGpuUtilization(handle) Data=[ { "dimensions": {"gpu_id": str(i) ,"server_name": "testserver"}, "metricName": "gpu_util", "value": gpu_util, } ] data["Data"]=json.dumps(Data) xx = urllib.urlencode(data) sender.send_data(xx) time.sleep(20)
完整代码可以参考如下的Github链接:
https://github.com/xianl/GPUM...
登录到自定义监控管理界面,可以查看采集到的数据。如果需要配置告警策略,可以在告警管理中进行配置。
另外,如果需要查看详细的数据也可以在报表详情中进行查看。
总结本文主要讲述了如何利用腾讯云的自定义监控服务来监控GPU服务器的GPU使用率,为大家在实际应用中监控服务器的非标数据提供了解决思路,如果需要监控GPU的其他参数如GPU内存使用率,GPU功耗等也可以基于此做适当修改来实现。另外,如果大家需要监控GPU之外一些非标数据,也可以参考本文提供的方案自行编写上传模块来实现。
相关阅读【云端架构】腾讯云CDN链接鉴权算法PHP代码模板
腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来
如何在Python中从零开始实现随机森林
此文已由作者授权云加社区发布,转载请注明文章出处
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/44547.html
摘要:服务器是基于的应用于深度学习科学计算等多种场合的稳定快速弹性的计算服务,提供和标准云服务器一致的管理方式。这些是一些可以用到服务器的场景,所以如果您的使用需要比较高端,建议还是使用服务器。GPU服务器是基于GPU的应用于深度学习、科学计算等多种场合的稳定、快速、弹性的计算服务,提供和标准云服务器一致的管理方式。出色的图形处理能力和高性能计算能力提供极致计算性能,有效解放计算压力,提升产品的计...
摘要:通过这两天的调研,笔者将的测试方法简单的分为两类安卓官方提供的工具及方法厂商提供的工具及方法。其中监测仅支持搭载高通处理器的设备,而其他功能可以在搭载任意处理器的手机上使用。 本文来自于Dev Club 开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57c7f... 作者:章未哲——腾讯SNG质量部 背景 我们在安卓上进行性能测试时,如果...
摘要:摘要日渐成为大家应用和服务的核心存储组件,本文来介绍一下如何通过云监控的简单配置来实现对资源使用量和状态进行监控和报警。 摘要: OSS日渐成为大家应用和服务的核心存储组件,本文来介绍一下如何通过云监控的简单配置来实现对OSS资源使用量和状态进行监控和报警。 点此查看原文:http://click.aliyun.com/m/43530/ OSS日渐成为大家应用和服务的核心存储组件,本...
摘要:阿里云上领域各个产品最终目标是为了对以上各个组件进行有效监控。阿里云的解决方案地图基于今天的云上的应用架构,阿里云的解决方案地图如下所示。其他阿里云服务包括缓存,等。阿里云解决方案地图以下表格对阿里云解决方案进行总结。 摘要: PM是近5年来伴随着云技术、微服务架构发展起来的一个新兴监控领域。在国内外,无论是云厂商(如AWS, Azure,等)还是独立的公司(Dynatrace, Ap...
阅读 808·2021-11-25 09:43
阅读 1672·2021-09-29 09:42
阅读 1892·2019-08-30 15:55
阅读 3413·2019-08-30 15:54
阅读 2617·2019-08-30 13:20
阅读 3500·2019-08-29 13:25
阅读 907·2019-08-28 18:03
阅读 1777·2019-08-26 13:44