摘要:目前騰訊云提供的云服務器并未提供方面的監(jiān)控數(shù)據(jù),本文旨在通過使用騰訊云的自定義監(jiān)控服務來自行實現(xiàn)對服務器的使用率的監(jiān)控。除了命令行工具,也提供了的供開發(fā)者使用,本文就基于的用于讀取使用率,并將數(shù)據(jù)上傳到騰訊云自定義監(jiān)控對應接口進行監(jiān)控。
歡迎大家前往云+社區(qū),獲取更多騰訊海量技術實踐干貨哦~
作者:李想
隨著人工智能以及比特幣的火熱,GPU云服務的使用場景是越來越廣,在很多場景下我們也需要獲取GPU服務器的性能參數(shù)來優(yōu)化程序的執(zhí)行。目前騰訊云提供的GPU云服務器并未提供GPU方面的監(jiān)控數(shù)據(jù),本文旨在通過使用騰訊云的“自定義監(jiān)控”服務來自行實現(xiàn)對GPU服務器的GPU使用率的監(jiān)控。
1.GPU云服務創(chuàng)建騰訊云GPU云服務器的創(chuàng)建可以參考下面官網(wǎng)的文檔,采用云市場提供的GPU服務器專用鏡像可以免于自行安裝GPU驅(qū)動程序。
https://cloud.tencent.com/doc...
使用云市場的鏡像創(chuàng)建的服務器,默認已經(jīng)包含了NVML 管理庫(Nvidia Management Library)和 基于NVML的命令行工具nvidia-smi (NVIDIA System Management Interface)。
在服務器上執(zhí)行nvidia-smi可以獲取當前服務器的GPU使用率。
除了nvidia-smi 命令行工具,Nvidia也提供了NVML的Python SDK供開發(fā)者使用,本文就基于NVML的python SDK用于讀取GPU使用率,并將數(shù)據(jù)上傳到騰訊云自定義監(jiān)控對應接口進行監(jiān)控。
https://pypi.python.org/pypi/...
同時需要執(zhí)行如下命令安裝NVML的Python庫:
pip install nvidia-ml-py2.自定義監(jiān)控配置
首先創(chuàng)建監(jiān)控配置,命名空間是該監(jiān)控的名字,維度用于定義每一個監(jiān)控數(shù)據(jù),由于一個服務器可能有多個GPU,所以我們這里定義兩個維度,server_name用于記錄GPU服務器名字,gpu_id用于記錄GPU序列號。如果還需監(jiān)控GPU其他指標可以在監(jiān)控指標里進行添加。
配置創(chuàng)建完畢需要創(chuàng)建指標統(tǒng)計方式,這里配置統(tǒng)計周期為5分鐘,并按照平均值進行統(tǒng)計。
數(shù)據(jù)上報通過一個Python腳本來實現(xiàn),腳本主要需要完成下面幾個任務。
初始化NVML并調(diào)用nvmlDeviceGetCount()讀取GPU個數(shù)。
計算Signature作為API接口校驗和鑒權參數(shù)。需要注意數(shù)據(jù)上報接口跟一般騰訊云API接口不同,并且簽名算法也有所不同,具體可參考官方文檔
調(diào)用NVML接口nvmlDeviceGetUtilizationRates()讀取GPU使用率。
將讀取的數(shù)據(jù)進行封裝并上傳。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...
登錄到自定義監(jiān)控管理界面,可以查看采集到的數(shù)據(jù)。如果需要配置告警策略,可以在告警管理中進行配置。
另外,如果需要查看詳細的數(shù)據(jù)也可以在報表詳情中進行查看。
總結本文主要講述了如何利用騰訊云的自定義監(jiān)控服務來監(jiān)控GPU服務器的GPU使用率,為大家在實際應用中監(jiān)控服務器的非標數(shù)據(jù)提供了解決思路,如果需要監(jiān)控GPU的其他參數(shù)如GPU內(nèi)存使用率,GPU功耗等也可以基于此做適當修改來實現(xiàn)。另外,如果大家需要監(jiān)控GPU之外一些非標數(shù)據(jù),也可以參考本文提供的方案自行編寫上傳模塊來實現(xiàn)。
相關閱讀【云端架構】騰訊云CDN鏈接鑒權算法PHP代碼模板
騰訊云微計算實踐:從Serverless說起,談談邊緣計算的未來
如何在Python中從零開始實現(xiàn)隨機森林
此文已由作者授權云加社區(qū)發(fā)布,轉(zhuǎn)載請注明文章出處
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/44547.html
摘要:服務器是基于的應用于深度學習科學計算等多種場合的穩(wěn)定快速彈性的計算服務,提供和標準云服務器一致的管理方式。這些是一些可以用到服務器的場景,所以如果您的使用需要比較高端,建議還是使用服務器。GPU服務器是基于GPU的應用于深度學習、科學計算等多種場合的穩(wěn)定、快速、彈性的計算服務,提供和標準云服務器一致的管理方式。出色的圖形處理能力和高性能計算能力提供極致計算性能,有效解放計算壓力,提升產(chǎn)品的計...
摘要:通過這兩天的調(diào)研,筆者將的測試方法簡單的分為兩類安卓官方提供的工具及方法廠商提供的工具及方法。其中監(jiān)測僅支持搭載高通處理器的設備,而其他功能可以在搭載任意處理器的手機上使用。 本文來自于Dev Club 開發(fā)者社區(qū),非經(jīng)作者同意,請勿轉(zhuǎn)載,原文地址:http://dev.qq.com/topic/57c7f... 作者:章未哲——騰訊SNG質(zhì)量部 背景 我們在安卓上進行性能測試時,如果...
摘要:摘要日漸成為大家應用和服務的核心存儲組件,本文來介紹一下如何通過云監(jiān)控的簡單配置來實現(xiàn)對資源使用量和狀態(tài)進行監(jiān)控和報警。 摘要: OSS日漸成為大家應用和服務的核心存儲組件,本文來介紹一下如何通過云監(jiān)控的簡單配置來實現(xiàn)對OSS資源使用量和狀態(tài)進行監(jiān)控和報警。 點此查看原文:http://click.aliyun.com/m/43530/ OSS日漸成為大家應用和服務的核心存儲組件,本...
摘要:阿里云上領域各個產(chǎn)品最終目標是為了對以上各個組件進行有效監(jiān)控。阿里云的解決方案地圖基于今天的云上的應用架構,阿里云的解決方案地圖如下所示。其他阿里云服務包括緩存,等。阿里云解決方案地圖以下表格對阿里云解決方案進行總結。 摘要: PM是近5年來伴隨著云技術、微服務架構發(fā)展起來的一個新興監(jiān)控領域。在國內(nèi)外,無論是云廠商(如AWS, Azure,等)還是獨立的公司(Dynatrace, Ap...
閱讀 808·2021-11-25 09:43
閱讀 1673·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