基于 Prometheus 的超算彈性計算場景下主機監控最佳實踐

作者:左知

超算場景的業務特點

主機監控,或許是監控/可觀測領域最傳統和普遍的需求。在超算訓練,AI 大規模訓練的業務場景下,主機監控又有哪些痛點和難點呢?根據我們針對多個大規模超算客戶的需求整理,超算場景的特點主要集中在如下幾個方面:

大規模計算

超算擅長處理可并行化的計算問題,通過成千上萬的處理器核心協同工作,實現任務的分解與加速執行。用戶通常采用彈性任務調度系統在云上快速拉起大量的 ECS 主機來滿足大規模計算需求。訓練任務進行時計算集群整體算力利用率等是成本控制的關鍵。

高性能與吞吐量

超算系統設計用于處理大規模數據集,能夠持續高效地完成大量計算工作,保證高吞吐量,適用于大數據分析、氣候模擬、生物信息學研究等領域。如果計算集群某些算力機器出現吞吐瓶頸,即會影響整體計算性能。

彈性計算

在超算場景中,每一次訓練任務一般持續幾個小時到幾天不等,每一次訓練的算力需求也差異較大。通常用戶采用彈性算力供給方式,在需要時拉起算力資源,結束時完成釋放。計算任務的規模和復雜性迅速變化,也可能需要在短時間內快速增加或減少計算資源。

業務高峰與低谷

特定時段會對計算資源有極高的需求,而在其他時期則可能需求降低,形成明顯的需求波動。

混合計算任務

超算任務可能會同時使用大量的 CPU 、GPU 、RDMA 等資源,以實現更高效的計算性能。不同的主機上可能存在異構的資源類型以支撐不同的計算任務。

超算場景面臨的可觀測挑戰

在超算應用場景中,計算性能的極致要求和資源的動態伸縮特性給主機可觀測提出了復雜挑戰。為了確保新增計算節點能夠迅速并穩定地融入整體計算環境,同時兼顧成本效率,可觀測性策略需要精心設計和實施,通過可觀測可以及時發現潛在的問題點,或者資源優化點等。

超算場景下,主機可觀測面臨的挑戰有如下幾點:

精細化監控

對計算節點的運行狀態、負載、網絡延遲等關鍵指標進行秒級監控,是確保系統穩定性和高效性的前提。

進程級監控能力

超算任務往往會以進程形式運行在主機上,不僅需要對主機整體資源消耗有監控,還需要對具體計算任務資源消耗具備可觀測能力。進程間的橫向資源消耗對比,可幫助快速發現資源消耗異常的進程。進程的數量監控,以及進程下的協程數量等,都是關鍵的可觀測指標。

自動化服務發現

監控系統需配備自動服務發現機制,以便在節點彈性伸縮時,能夠立即識別新增或被釋放的節點,以實現秒級單位下納入監控系統。

自動部署監控探針

對于新增的計算節點,自動部署監控組件是迅速實現節點加入監控體系的關鍵。通常對于不同算力的主機進行智能識別,以安裝對應的數據采集組件,例如區分 Windows 或 Linux 主機嗎,GPU 算力,RDMA 高性能網絡需求。

數據標簽分類

數據標簽(也稱為標簽或標簽鍵)是與指標相關聯的元數據,用來提供額外的上下文信息,以便對指標進行更細致的分類、篩選和分組。根據使用場景和用途不同,需要增加特定的標簽,例如組織性標簽、環境標簽、業務標簽等。通過適當地使用和組合不同的數據標簽,可以提高監控數據的可查詢性和可操作性,并幫助您構建一個更加強大和靈活的可觀測性解決方案。

超算場景彈性主機監控方案

阿里云 Prometheus 主機監控針對阿里云 ECS 服務器提供了一個高效且易于管理的監控方案,這一方案的特點是順應了現代云計算環境中對于可觀測性和自動化管理的需求,阿里云 Prometheus 主機監控具備如下優勢。

阿里云 Prometheus 提供的主機監控,具備阿里云 ECS 服務器、自建 IDC 內服務器、云廠商服務器全類型主機接入能力,針對阿里云 ECS 服務器可根據配置自動安裝各類開源 Exporter,各類 Exporter 采集配置自動生成,托管 Prometheus Agent 實現自動采集,采集數據統一存儲、統一展示、統一告警。對于非阿里云主機不具備自動服務發現的能力,所以需要依賴用戶在接入時手動安裝阿里云采集探針,主動將監控數據上報到阿里云 Prometheus 存儲。

圖片

阿里云 Prometheus 主機監控架構

主機秒級發現

  • 適應性:自動服務發現機制允許監控系統快速適應云資源的動態變化,確保所有運行中的實例都被及時監控。
  • 多樣性:支持多種服務發現類型,滿足不同場景下的監控需求,如支持 Kubernetes 集群內服務的自動發現,以及其他類型云服務的集成。

探針秒級安裝

  • 即插即用:自動化安裝 Exporter,使得新啟動的計算節點可以立即被監控系統識別并收集其度量,無需人為干預。
  • 全面監控:提供多種 Exporter,包括 Node-exporter、Process-exporter、GPU-exporter 和中間件 Exporter,進行全方位的性能追蹤。

指標秒級采集

  • 配置簡化:自動化配置生成減輕了運維人員手動配置的負擔,確保所有節點和服務的度量都能被準確無誤地采集。
  • 靈活性:配置可根據現有的監控需求作出相應調整,帶來靈活性和可擴展性,應對復雜多變的監控環境。

主機從創建到納入監控系統,整體可以在 30-60s 以內完成。主機所有指標數據可以支持 1-60s 時間間隔的靈活調整。整體實現主機全方位秒級監控能力。

探針?Serverless?化

  • 集中管理:通過托管的 Prometheus Agent 統一管理數據采集,簡化了監控架構,提高了運維效率。用戶對數據采集鏈路無感知。
  • 高效能:因為抽象了監控算法的復雜性,使用 Agent 可以減少誤配的可能性,提高監控數據的準確性和時效性。

智能指標標簽

  • 自動摘取阿里云 ECS 主機的標簽、資源組、區域等信息,并自動注入到整個指標體系中,方便快捷。
  • 配置化自定義添加額外標簽能力,可進一步提升標簽體系的靈活性,自定義例如業務標識、環境標識、數據來源標識等。

超大規模數據采集與存儲

  • 支持超大規模主機接入,采用用戶獨享與共享并存托管模式,依據用戶主機接入規模動態調整托管資源,保證接入的時效和準確性。
  • 存儲可支持超大規模指標存儲,并具備高性能的查詢和展示能力。

提供完善的上下游監控數據

  • 為了實現一個系統級的、全面的可觀測性,單一實體監控是不夠的,需要整合不同維度的監控數據并構建全鏈路觀測,確保監控系統能夠反映出整個應用和服務生態的健康和表現。
  • 涵蓋從底層硬件到應用層再到外部服務(如 RDMA 網絡、OSS 存儲、Redis 等)的綜合監控策略。這個策略應該包括不僅僅是主機和網絡的監控,還包括對依賴服務的監控。

進程級監控

  • 進程級監控可以對操作系統運行的進程進行跟蹤和分析,以了解進程的性能和資源利用情況。這是實現系統級監控的關鍵部分,旨在提供運行在服務器上的應用程序的健康和表現的透視圖。
  • 進程級監控除了會捕獲進程的 CPU 使用率、進程的內存使用量、進程的磁盤讀寫情況等關鍵性能指標,還會收集進程的啟動時間、打開的文件的句柄數、進程下調起的線程數量等。提供接近于實時的監控能力,做到即時的反饋,讓系統管理員能夠及時識別和解決問題。
  • 進程級監控,為管理員提供更加豐富的故障診斷手段,幫助識別導致系統性能下降或故障的進程,可能是某些進程內存泄露、高 CPU 使用率或其他資源爭用等。

默認提供?Grafana?數據大盤

  • 默認集成經過阿里云專家經驗沉淀的 Grafana 大盤,包括 ECS Overivew 總覽大盤、ECS Detail 詳細大盤、GPU Overview 總覽大盤、GPU Detail 詳細大盤、Node-process 進程級大盤。
  • 真正做到一鍵接入主機可觀測,開箱即用。

實踐方式

接入方式以阿里云 ECS 服務器為例,在應用實時監控頁面,點擊接入管理,選擇 ECS 環境,點擊新增接入,可分別接入 GPU 監控和主機監控。其中 GPU 監控對應接入 GPU 類型主機,默認會自動安裝 GPU-exporter;其中主機監控對應接入 CPU 類型主機,默認會自動安裝 Node-exporter 和 Process-exporter。

圖片

針對阿里云 ECS 服務器,支持多種類型的服務發現方式,可靈活選擇需接入監控的目標服務器,服務發現方式 CPU 主機和 GPU 主機沒有差異。

圖片

成功接入后,會依據主機類型顯示服務發現的主機數量、以及 Exporter 安裝和運行情況。

圖片

自監控頁面,可實時查看 GPU 和 CPU 主機接入采集狀態,以及實時獲取源數據。

圖片

接入效果

阿里云 Prometheus 主機監控服務的接入效果總結如下:

  1. 快速服務發現
    • 實測每次大規模主機彈性伸縮(約 500?臺規模)的發生,監控服務能夠在一分鐘內發現新的計算節點。
  2. 迅速部署?Exporter
    • 必要的 Exporter(Gpu-exporter、Node-exporter、Process-exporter)可以在一分鐘內完成自動安裝,這意味著每臺服務器可以接近實時開始生成監控數據。
  3. 低數據可觀測延遲
    • 自計算節點創建并運行起來,到用戶可以觀察到監控數據,整個過程的延遲時間控制在兩分鐘內,大大降低了監控數據的丟失率。
  4. 及時停止數據采集
    • 對于下線的計算節點,監控數據的停止采集時間同樣保持在兩分鐘內,這保證了系統資源的高效使用。如果主機未被銷毀,系統將自動卸載 Exporter 并刪除其配置,優化了資源的回收過程。
  5. 高效并發處理能力
    • 阿里云 Prometheus 主機監控能夠承載高并發的監控任務,有效地根據用戶彈性主機數量的變化進行調整,滿足不同用戶、規模和時效性的需求。

阿里云 Prometheus 主機監控服務通過以上能力為超算用戶提供了強大的監控保障。這種快速而精準的可觀測性能力是超算用戶在云環境中實現資源動態管理和性能優化的關鍵。能夠及時響應計算資源的彈性伸縮對于確保計算作業的連續性、洞察系統瓶頸和異常行為,以及指導資源分配決策至關重要。

集成大盤

阿里云 Prometheus 主機監控,當接入 GPU 監控和 CPU 主機監控,默認集成對應大盤,提供包括計算節點基礎觀測、進程觀測、協程觀測、GPU 觀測等。

圖片

主機監控默認集成大盤列表

圖片

主機監控 GPU 監控默認集成大盤

默認集成的觀測大盤,阿里云專家根據實踐積累,預置了多種核心觀測點大盤、多重聚合維度觀測視角大盤,真正做到開箱即用。

圖片

ECS Overview大盤

圖片

ECS Detail 大盤

圖片

Node Process 進程大盤

圖片

GPU Overview 總覽大盤

圖片

GPU Detail 詳細大盤

總結

在超算場景中,隨著計算需求的高度動態性和對性能極致追求,對云計算服務提供商提出了快速調整資源以應對業務高峰與低谷的挑戰。阿里云 Prometheus 提供的主機監控方案積極響應了可觀測需求,通過強化其自動化監控能力,為資源優化和提升成本效益提供可靠的監控指標。

阿里云 Prometheus 主機監控實踐能力包括如下四點:

  1. 自適應的自動服務發現,保障云資源的實時監控覆蓋,應對資源動態伸縮的需求。

  2. 自動化的 Exporter 部署,降低了運維難度,提供了即插即用的監控能力,及時追蹤新節點的度量。

  3. 自動生成的 Prometheus 配置,簡化了監控配置的復雜性,增加了監控架構的靈活性和可擴展性。

  4. 托管的 Prometheus Agent,實現了監控數據采集的集中管理和優化,提高了數據的準確性和有效性。

以上能力使阿里云 Prometheus 提供的主機監控具備如下優勢:

提高運維效率: 自動化的監控系統降低了人力投入,釋放了運維團隊的工作負擔,使他們可以投入到更重要的優化任務中。

快速響應問題: 實時監控和快速服務發現機制,縮減了從診斷到解決問題的時間,提高了系統的可靠性。

資源使用優化: 實時細粒度監控帶來了資源使用的深入講解,指導資源調度的優化,降低資源浪費,實現成本控制。

增強的可擴展性和可靠性: 自動化和智能化的監控手段保證了即使在主機數量大規模擴展的情況下,監控的全面性和準確性都不會受到影響。

綜上,阿里云 Prometheus 主機監控方案正成為超算場景下管理與監控云資源的強有力支撐,它不僅有效地保障了云基礎設施的高效和健康,也為企業進一步拓展其高性能計算能力提供了堅實的基礎。

目前可觀測監控 Prometheus 版,提供每月 50GB 數據寫入免費額度,滿足日常監控基本需求,點擊此處,立即開始體驗。

圖片

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/13630.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13630.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13630.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python案例題目,入門小白題

1.抓取鏈家前十頁的數據 鏈家網址:長沙房產網_長沙房地產_長沙房產門戶(長沙鏈家網) 1.1.計算均價和總價 import time ? from selenium import webdriver from selenium.webdriver.common.by import By ? driver webdriver.Chrome() driver.get("https://c…

linux系統內存持續飆高的排查方法

目錄 前言: 1、查看系統內存的占用情況 2、找出占用內存高的進程 3、解決方法 4、補充:如果物理內存使用完了,會發生的情況 前言: 如果一臺服務器內存使用率持續處于一個高峰值,服務器可能會出現響應慢問題。例如s…

使用@Autowired + Map 實現策略模式

使用Autowired Map 實現策略模式 創建接口 public interface UserService {String getName(); }創建多個類實現上面的接口 實現一 import com.boot.service.UserService; import org.springframework.stereotype.Service;Service("zhangsan") public class Zhangsan…

代碼隨想錄算法訓練營第十六天|LeetCode104 二叉樹的最大深度、LeetCode111 二叉樹的最小深度、LeetCode222完全二叉樹的節點個數

題1: 指路:LeetCode104 二叉樹的最大深度 思路與代碼: 1.遞歸 求左右子樹的最大深度后加1(根到子樹也有1個深度單位)。代碼如下: class Solution { public:int maxDepth(TreeNode* root) {int ans 0;if (root NULL) return…

當他們在說業務的時候,到底在說什么

業務就是通過提供產品和服務給客戶,以獲取某種價值,形成業務閉環,并能自負盈虧。 文章會以生動形象的比喻來介紹業務到底是什么。 什么是業務? 業務,就像一場精彩的舞臺劇,每個角色都有自己的任務和目標…

electron學習記錄

1.下載electron electron/electron-quick-start: Clone to try a simple Electron app (github.com) 下載實例模板 2.安裝依賴 npm源改成中國鏡像 npm config set registry https://registry.npmmirror.com 然后用cnpm i 來安裝 npm換官方源 npm config set registry https:…

QT--TCP網絡通訊工具編寫記錄

QT–TCP網絡通訊工具編寫記錄 文章目錄 QT--TCP網絡通訊工具編寫記錄前言演示如下:一、服務端項目文件:【1.1】server_tcp.h 服務端聲明文件【1.2】thread_1.h 線程處理聲明文件【1.3】main.cpp 執行源文件【1.4】server_tcp.cpp 服務端邏輯實現源文件【…

cuda 內核啟動

C 使用 __global__ 聲明說明符定義內核&#xff0c;并使用新的 <<<...>>> 執行配置語法指定內核調用的 CUDA 線程數&#xff08;請參閱 C 語言擴展&#xff09;。 每個執行內核的線程都有一個唯一的線程 ID&#xff0c;可以通過內置變量在內核中訪問。 示例…

【最全的excel轉json!!!】使用Python腳本提取excel文本中的數據到json中

比如說&#xff1a;我有一個1.xlsx的文件需要轉成對應的json格式。 1&#xff09; excel 文件的大概內容&#xff1a; 2&#xff09;保存的方式類似于以下這種情況&#xff1a; 用Python腳本來實現 import pandas as pd import json# 讀取Excel文件 excel_path r"D:…

基礎知識篇:大語言模型核心原理解析

1??人工智能基礎概念全景圖 &#x1f4a1; &#x1f9e0;人工智能與機器學習 人工智能&#xff08;AI&#xff09;是計算機科學的一個分支&#xff0c;旨在模擬人類的智能來解決問題。而機器學習&#xff08;ML&#xff09;是AI的一個子集&#xff0c;它的魅力在于不需要顯…

【MySQL精通之路】MySQL8.0升級過程升級了什么

目錄 1.升級內容 1.1 mysql系統庫 1.2.其他庫 2.步驟 2.1 步驟1&#xff1a;數據字典庫升級。 2.2 步驟2&#xff1a;服務器升級。 3.mysql_upgrade 3.1 執行正常升級&#xff08;根據需要執行步驟1和2&#xff09;&#xff1a; 3.2 必要時僅執行步驟1&#xff1a; 3…

【MySQL精通之路】InnoDB(6)-磁盤結構(6)-Undolog

1.介紹 Undolog是與單個讀寫事務相關聯的Undolog記錄的集合。 Undolog包含有關如何撤消事務對聚集索引記錄最新更改的信息。如果另一個事務需要將查看一致性讀的一部分原始數據&#xff0c;則會從Undolog記錄中檢索未修改的數據。 2.結構 Undolog記錄存在于Undolog段中 而Un…

LLMPerf-為LLM提供可重現的性能指標

LLMPerf-為LLM推理提供可復現的性能指標 翻譯自文章&#xff1a;Reproducible Performance Metrics for LLM inference 結合之前的LLMPerf測試大模型API性能的文章進行查看&#xff0c;效果更佳。 1. 摘要 我們見過許多關于LLM性能的聲明&#xff1b;然而&#xff0c;這些聲明往…

Android面試題之Kotlin泛型和reified關鍵字

本文首發于公眾號“AntDream”&#xff0c;歡迎微信搜索“AntDream”或掃描文章底部二維碼關注&#xff0c;和我一起每天進步一點點 //泛型 class MagicBox<T>(item:T){var available falseprivate var subject:T itemfun fetch() : T? {return subject.takeIf { avai…

Ubuntu徹底卸載Nginx

停止Nginx服務 sudo systemctl stop nginx卸載Nginx軟件包 sudo apt purge nginx nginx-common nginx-core清除配置文件和依賴項 清除Nginx的配置文件 sudo rm -rf /etc/nginx清除Nginx安裝的依賴項 sudo apt autoremove清除相關文件和目錄 刪除Nginx的日志文件 sudo rm…

配置旁掛二層組網直接轉發示例(命令行)

業務需求 企業用戶通過WLAN接入網絡&#xff0c;以滿足移動辦公的最基本需求。且在覆蓋區域內移動發生漫游時&#xff0c;不影響用戶的業務使用。 組網需求 AC組網方式&#xff1a;旁掛二層組網。DHCP部署方式&#xff1a; AC作為DHCP服務器為AP分配IP地址。匯聚交換機SwitchB作…

深度學習基礎之《TensorFlow框架(18)—卷積神經網絡(2)》

一、卷積層 1、卷積層&#xff08;Convolutional Layer&#xff09;介紹 卷積神經網絡中每層卷積層由若干卷積單元&#xff08;卷積核&#xff09;組成&#xff0c;每個卷積單元的參數都是通過反向傳播算法最佳化得到的 卷積運算的目的是特征提取&#xff0c;第一層卷積層可能…

Gradle和Maven項目解決Spring Boot Configuration Annotation Processor not configured警告

問題描述 寫了一個配置類,加了注解@ConfigurationProperties(prefix = “xxx”) 后一直報警告:Spring Boot Configuration Annotation Processor not configured 意思是 Spring boot 未配置注解處理器 解決過程 出現這個問題后,百度查了解決方式 1.maven項目 maven項目是…

學習前端第四十四天(瀏覽器事件簡介)

一、事件處理程序 對事件作出響應&#xff0c;可以分配一個 處理程序 &#xff0c; 一個在事件發生時運行的函數 1、HTML特性綁定事件處理函數 <button id"btn1" οnclick"fn();console.log(xc)">保存1</button> 2、DOM屬性綁定事件處理函數…

純軟件雙機熱備

在信息化高速發展的今天&#xff0c;企業對于業務連續性的需求愈發強烈。無論哪個行業&#xff0c;系統的穩定運行都至關重要。為了確保系統的高可用性和業務連續性&#xff0c;純軟件雙機熱備技術應運而生&#xff0c;成為了企業IT架構中的關鍵一環。 雙機熱備軟件下載 …