1. 程式人生 > >利用 Amazon CloudWatch 監控 GPU 利用率

利用 Amazon CloudWatch 監控 GPU 利用率

深度學習需要進行大量的矩陣相乘和向量運算,而 GPU (圖形處理單元) 可以並行處理這些運算,因為 GPU 擁有數以千計的核心。Amazon Web Services 為您提供的 P2 或 P3 例項非常適用於執行深度學習框架,如 MXNet,該框架強調加速部署大型深度神經網路。

資料科學家和開發人員在微調網路時,希望優化其 GPU 的利用率,以使用最適當的批處理大小。在這篇博文中,我將向您展示如何使用 Amazon CloudWatch 指標監控 GPU 和記憶體的使用情況。至於 Amazon 系統映像 (AMI),我們建議您的例項使用 Amazon Deep Learning AMI

要監控和管理已啟用 GPU 的例項,目前常見的有益做法是使用 NVIDIA 系統管理介面 (nvidia-smi),這是一個命令列實用程式。使用者可以利用 nvidia-smi 查詢 NVIDIA GPU 裝置的 GPU 利用率、記憶體消耗情況、風扇使用情況、功耗以及溫度資訊。

由於 nvidia-smi 的基礎是 NVIDIA Management Library (NVML),所以我們可以使用這個基於 C 的 API 庫捕捉相同的資料點,並作為自定義指標傳送給 Amazon CloudWatch。如需瞭解有關此庫的更多資訊,請轉至參考手冊

。在這篇博文中,我們將使用此庫的 Python 包裝程式 pyvnml

Amazon CloudWatch 可以非常出色地監控您在 EC2 例項上的工作負載,無需設定、管理,也無需為它擴充套件系統和基礎設施。預設情況下 CloudWatch 可提供 CPU 利用率、磁碟讀取操作、磁碟寫入操作、網路輸入和網路輸出等指標。(點選此處瞭解適用於您的例項的完整指標列表)

除了提供這些指標,我們還能夠使用 API、軟體開發工具包或 CLI 通過 Amazon CloudWatch 自定義指標推送我們自己的資料點。我們將使用 Python Boto3 軟體開發工具包。

您可以在 Amazon CloudWatch 中建立

自定義控制面板來檢視您的資源。您還可以為您的指標建立警報。還有許多可以與 CloudWatch 結合使用的功能和服務。如果您希望訪問並存儲 Amazon EC2 例項生成的日誌,可以使用 Amazon CloudWatch Logs。此外,Amazon CloudWatch Events 可以為您提供描述 AWS 資源變化的資料流,例如,如果有人試圖在模型訓練完成之前終止您的例項,您可以收到提醒。

立即設定

預設情況下,已對您的例項啟用基本監控。我們會啟用詳細監控,Amazon EC2 控制檯將以 1 分鐘為間隔顯示例項的監控狀態。

注意:基本監控是免費的,但詳細監控會收取費用。新客戶和現有客戶每月可免費獲得 10 個指標、10 個警報,以及 100 萬個 API 請求 (包括 PutMetricData)。

鑑於您的例項已執行在 Deep Learning AMI 之上,我們需要建立一個 IAM 角色,為您的例項授權,使其能夠向 Amazon CloudWatch 推送指標。我們需要根據文件中的描述建立一個 EC2 服務角色。請確保您的角色允許以下策略。

{  
    "Version": "2012-10-17",   
    "Statement": [     
         {       
             "Action": [         
                 "cloudwatch:PutMetricData",         
              ],       
              "Effect": "Allow",       
              "Resource": "*"     
         }   
    ] 
}

接下來在您的例項上下載 Python 程式碼。我們將使用此指令碼,將 GPU 使用情況、記憶體使用情況、溫度和電源使用情況作為自定義 CloudWatch 指標進行推送。

安裝必要的程式包,以使用程式碼:

sudo pip install nvidia-ml-py -y
sudo pip install boto3 -y

請確保根據您的工作負載更改名稱空間和間隔。您還可以選擇更改 store_reso,使用間隔縮短至 1 秒的高精度指標,從而更精確地瞭解 GPU 的使用情況。

預設情況下,這些是頂部的引數:

#在此處選擇名稱空間引數###
my_NameSpace = ‘DeepLearningTrain’
### 選擇推送間隔 ####
sleep_interval = 10
### 選擇儲存精度 (在 1-60 之間) ####
store_reso = 60

執行指令碼:

python gpumon.py

訓練完成後按 ctrl-zctrl-c 停止指令碼。

以下是一個正在執行的訓練的 Amazon CloudWatch 檢視示例。請觀察在計算過程中所有指標是如何互相關聯的。

結論

在這篇博文中,我將提供一種簡便的方法,它不僅可以監控 GPU 利用率,還可以監控您的 NVIDIA GPU 裝置的記憶體、溫度和電源使用情況。如果您要新增其他自定義指標或刪除自定義指標,可以修改我提供的程式碼。接下來,就像我們在介紹時提到的,要嘗試為您的指標建立 CloudWatch 警報。例如,您可以設定 Amazon SNS 通知,在模型訓練期間,GPU 利用率低於 20% 即向您傳送電子郵件。

補充閱讀

作者簡介

Keji Xu 是 AWS 的解決方案架構師,現居舊金山。他幫助客戶理解雲端高階解決方案,以及如何將現有的工作負載遷移到雲,以實現客戶的業務目標。他在閒暇時喜歡聆聽音樂,以及為他的新英格蘭運動隊加油吶喊。

相關推薦

利用 Amazon CloudWatch 監控 GPU 利用率

深度學習需要進行大量的矩陣相乘和向量運算,而 GPU (圖形處理單元) 可以並行處理這些運算,因為 GPU 擁有數以千計的核心。Amazon Web Services 為您提供的 P2 或 P3 例項非常適用於執行深度學習框架,如 MXNet,該框架強調加速部署大型深度神經網路。

利用Amazon CloudWatch 搭建無人值守的監控預警平臺

資源與應用服務層監控 Amazon CloudWatch 監控和預警平臺可以幫助客戶統一管理和運維AWS雲端和本地資源、服務和業務系統;使用 Amazon CloudWatch 可以收集和跟蹤指標,收集和監控日誌檔案,設定警報。您可通過使用 Amazon CloudWatch

Amazon CloudWatch監控_雲監控服務

Amazon CloudWatch 是一種面向開發人員、系統操作員、網站可靠性工程師 (SRE) 和 IT 經理的監控和管理服務。CloudWatch 為您提供相關資料和切實見解,以監控應用程式、瞭解和響應系統範圍的效能變化、優化資源利用率,並在統一檢視中檢視運營狀況。CloudWatch

Amazon CloudWatch監控服務價格_亞馬遜雲監控

包括自定義指標。 EC2 詳細監控的價格為每月每個例項 2.10 USD,在價格最低的套餐中低至每個例項 0.14 USD。  EC2 詳細監控定價是根據每個例項有 7 個自定義指標計費的(按 1 分鐘頻率),按比例分配到每小時,並且僅在例項向 Cloud

Amazon CloudWatch監控常見問題_亞馬遜雲監控

問:為什麼我在 2017 年 7 月的 AWS CloudWatch 每月賬單與之前幾個月的不同? 在 2017 年 7 月之前,CloudWatch 費用分開顯示在 AWS 賬單與成本和使用率報告中的兩個不同部分。由於歷史原因,CloudWatch 警報、

利用shell指令碼監控linux中CPU、記憶體和磁碟利用率。(centos7)

  這篇部落格中所寫的,在實際工作中並沒有什麼卵用,工作中並不會用到這種指令碼去監控。不過自己寫一遍,可以讓初學者對CPU、記憶體、磁碟等一些基礎知識和基礎命令更加了解。 1、利用vmstat工具監控CPU詳細資訊,然後基於/proc/stat計算CPU利用率進行監控,超過80報警並提取出佔用cpu最高的前十

java利用WatchService實時監控某個目錄下的文件變化並按行解析(註:附源代碼)

tomcat啟動 interrupt extend red -name 利用 end eba tor 首先說下需求:通過ftp上傳約定格式的文件到服務器指定目錄下,應用程序能實時監控該目錄下文件變化,如果上傳的文件格式符合要求,將將按照每一行讀取解析再寫入到數據庫,解析完之

利用ZABBIX全面監控MongoDB數據庫

斷言 try flush mongodb監控 form sets 再次 requests 情況下 前一段時間寫過一篇zabbix監控MongoDB的文章,正好最近線上要再次監控MongoDB,翻出以前的筆記看了一下,感覺方法太笨,監控的大部分內容不是自己想要的,這激發了這次

Zabbix3.0.4利用iostat工具監控CentOS主機磁碟IO

該監控基於iostat,然後iostat 命令用來監視系統輸入/輸出裝置負載 1.安裝IOSTAT工具 # yum install sysstat -y 測試iostat 檢視所有硬碟io avg-cpu: %user %nice %system %iowait %steal %idle0.04 0

gpustat : Linux下面監控GPU狀態

nvidia-smi是 Nvidia 顯示卡命令列管理套件,基於 NVML 庫,旨在管理和監控 Nvidia GPU 裝置。 nvidia-smi 的輸出 這是 nvidia-smi 命令的輸出,其中最重要的兩個指標: 視訊記憶體佔用 GPU 利用率 視訊記憶

30歲天才上班族利用Python人臉監控BOSS,偽裝成認真上班的樣子!

如今Python程式設計師可以做深度學習演算法實現人臉識別,得益於國外開源框架,雖然它不能達到face++和眾多人臉識別公司,但實際應用並沒有受到太大的壓力。下圖為tensorflow的5點定位加情感測試。人臉識別的應用不久前,新聞曝光一家奇葩公司。Python資深程式設計師

利用shell指令碼監控redis的使用記憶體

前些天搭建的redis叢集終於在生產環境使用了,為了系統的穩定,研究了下redis的監控報警。 雖然之前搭建了RedisLive,可以實時檢視redis的資訊,但是做不到實時的簡訊報警監控。 目前只針

利用AnyProxy代理監控APP流量

根據 請求過程 ports 加載 打開 bsp intercept ould style 1.介紹 AnyProxy 是阿裏巴巴基於 Node.js 開發的一款開源代理服務器。 代理服務器站在客戶端和服務端的中間,它可以收集雙方通信的每個比特。一個完整的代理請求

利用python指令碼監控Tomcat伺服器

---------------------------------------------------------------------------------------------[版權申明:本文系作者原創,轉載請註明出處] 文章出處:https://blog.csdn

Amazon CloudWatch Product Features

Amazon CloudWatch is a monitoring and management service that provides data and actionable insights for AWS, hybrid, and on-premises applications

Amazon CloudWatch Pricing

Includes Custom Metrics. EC2 Detailed Monitoring is priced at $2.10 per instance per month and goes down to $0.14 per instance a

Set Up Scheduled EBS Volume Snapshots Using Amazon CloudWatch

Amazon Web Services is Hiring. Amazon Web Services (AWS) is a dynamic, growing business unit within Amazon.com. We are currently hiring So

Amazon CloudWatch Case Study

Adopting DynamoDB TTL enabled the CloudWatch team to cut its operational burden, since the team no longer has to manually manage table deletion

Amazon CloudWatch FAQs

Q: Why does my AWS monthly bill for CloudWatch appear different between July 2017 and previous months? Prior to July 2017, charge

Amazon CloudWatch Getting Started

To start accessing your Amazon CloudWatch metrics, click the Metrics link on the Amazon CloudWatch tab of the AWS Management Console. All your AW