基於 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 數據寫入免費額度,滿足日常監控基本需求,點擊此處,立即開始體驗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章