本文将介紹如何利用阿裡雲雲監控服務提供的自定義監控實作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資料。
5 示例
5.1 建立自定義監控項
在雲監控控制台建立自定義監控項,如下圖:
5.2 檢視監控項資料
在雲監控控制台檢視監控項,如下圖:
某執行個體GPU 0的GPU使用率(機關:Persent):
某執行個體GPU 0的顯存使用率(機關:Persent):
某執行個體GPU 0的記憶體占用量(機關:Megabytes):
某執行個體GPU 1的功率(機關:Watt):
某執行個體GPU 1 的溫度(機關:攝氏度):
5.3 設定報警規則
在溫度監控項上點選報警管理:
設定溫度報警規則:
設定通知對象:
完成設定: