由于目前<code>k8s</code>測試和生産環境已經有容器應用在使用,是以不太适合去更改底層容器運作時(runtime),是以這裡使用<code>自定義gpu監控名額</code>推送至<code>cloudwatch</code>觸發門檻值來完成gpu監控和報警活動。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLzATOiN2NjVzN2YTZyIzM4MTM5ATO3AjNvwVblRXavwlbj5iYkdWbp5yZtl2Lc9CX6MHc0RHaiojIsJye.png)
首先,我們需要給每個使用gpu的執行個體(instance)進行iam賬戶授權,這樣我們才能夠将<code>自定義名額</code>推送到<code>cloudwatch</code>,通過定義監控門檻值完成最終的監控報警。
在aws管理控制台,建立iam使其具有<code>執行個體推送資料到cloudwatch</code>的權限,建立好iam後,擷取<code>key_id</code>和<code>secret_key</code>,這裡使用aws cli定義,如下:
具體實施步驟如下:
要監控和管理已啟用 gpu 的執行個體,目前常見的有益做法是使用 nvidia 系統管理接口 (nvidia-smi),這是一個指令行實用程式。使用者可以利用 nvidia-smi 查詢 nvidia gpu 裝置的 gpu 使用率、記憶體消耗情況、風扇使用情況、功耗以及溫度資訊。
具體步驟如下:
(1)gpu-mon虛拟環境安裝包
(2)需要自定義的腳本内容
(3)腳本詳情
(4)背景執行腳本
上面部署完成後,我們打開aws控制台的<code>cloudwatch</code>選擇名額中,可以看到我們自定義的gpu監控名額<code>ai-gpu-mon_test</code>,目前支援四個監控名額:
gpu usage
memory usage
power usage(watts)
temperature(c)
利用 amazon cloudwatch 監控 gpu 使用率