運作狀態監控系統 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

運作狀態監控系統

SageMaker HyperPod 運作狀態監控系統包含兩個元件

  1. 監控節點中安裝的代理程式,其中包括做為主機運作狀態監控器的運作狀態監控代理程式 (HMA),以及一組out-of-node運作狀態監控器。

  2. SageMaker HyperPod 管理的節點復原系統。運作狀態監控系統會透過監控代理程式持續監控節點運作狀態,然後在使用節點復原系統偵測到錯誤時自動採取動作。

此影像說明運作狀態監控系統如何與 HyperPod 叢集整合。

SageMaker HyperPod 運作狀態監控代理程式執行的運作狀態檢查

SageMaker HyperPod 運作狀態監控代理程式會檢查下列項目。

NVIDIA GPU

  • DCGM 政策違規通知

  • nvidia-smi 輸出中的錯誤

  • Amazon Elastic Compute Cloud (EC2) 平台所產生日誌中的各種錯誤

  • GPU 計數驗證 – 如果特定執行個體類型中預期的 GPUs 數量 (例如:ml.p5.48xlarge 執行個體類型中的 8 個 GPUs) 與 傳回的計數不相符nvidia-smi,HMA 會重新啟動節點

AWSTrainium

  • AWS Neuron 監視器輸出中的錯誤

  • Neuron 節點問題偵測器產生的輸出 (如需 AWSNeuron 節點問題偵測器的詳細資訊,請參閱 Amazon EKS 叢集內 AWSNeuron 節點的節點問題偵測和復原。)

  • Amazon EC2 平台所產生日誌中的各種錯誤

  • Neuron Device Count 驗證 – 如果特定執行個體類型中神經元裝置的實際計數與 傳回的計數不相符neuron-ls,HMA 會重新啟動節點

上述檢查是被動的背景運作狀態檢查,HyperPod 會持續在您的節點上執行。除了這些檢查之外,HyperPod 也會在建立和更新 HyperPod 叢集期間執行深度 (或作用中) 運作狀態檢查。進一步了解 Deep 運作狀態檢查

故障偵測

當 SageMaker HyperPod 偵測到錯誤時,它會實作四個部分的回應:

  1. 節點標籤

    1. 運作狀態: sagemaker.amazonaws.com/node-health-status

    2. 故障類型:高階分類的sagemaker.amazonaws.com/fault-types標籤

    3. 故障原因:詳細故障資訊的sagemaker.amazonaws.com/fault-reasons標籤

  2. 節點標記

    1. sagemaker.amazonaws.com/node-health-status=Unschedulable:NoSchedule

  3. 節點註釋

    1. 故障詳細資訊: sagemaker.amazonaws.com/fault-details

    2. 使用節點上發生的時間戳記記錄最多 20 個錯誤

  4. 節點條件 (Kubernetes 節點條件)

    1. 在節點條件下反映目前的運作狀態:

      • 類型:與錯誤類型相同

      • 狀態: True

      • 原因:與故障原因相同

      • LastTransitionTime:故障發生時間

此影像說明偵測到錯誤時運作狀態監控系統的運作方式。

SageMaker HyperPod 運作狀態監控代理程式產生的日誌

SageMaker HyperPod 運作狀態監控代理程式是開箱即用的運作狀態檢查功能,並持續在所有 HyperPod 叢集上執行。運作狀態監控代理程式會將 GPU 或 Trn 執行個體上偵測到的運作狀態事件發佈至叢集日誌群組 /aws/sagemaker/Clusters/ 下的 CloudWatch。

來自 HyperPod 運作狀態監控代理程式的偵測日誌是針對每個節點建立的,而這些日誌會做為個別的日誌串流,命名為 SagemakerHealthMonitoringAgent。您可以使用 CloudWatch 日誌洞見來查詢偵測日誌,如下所示。

fields @timestamp, @message | filter @message like /HealthMonitoringAgentDetectionEvent/

此命令會傳回如下的輸出。

2024-08-21T11:35:35.532-07:00 {"level":"info","ts":"2024-08-21T18:35:35Z","msg":"NPD caught event: %v","details: ":{"severity":"warn","timestamp":"2024-08-22T20:59:29Z","reason":"XidHardwareFailure","message":"Node condition NvidiaErrorReboot is now: True, reason: XidHardwareFailure, message: \"NVRM: Xid (PCI:0000:b9:00): 71, pid=<unknown>, name=<unknown>, NVLink: fatal error detected on link 6(0x10000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\""},"HealthMonitoringAgentDetectionEvent":"HealthEvent"} 2024-08-21T11:35:35.532-07:00 {"level":"info","ts":"2024-08-21T18:35:35Z","msg":"NPD caught event: %v","details: ":{"severity":"warn","timestamp":"2024-08-22T20:59:29Z","reason":"XidHardwareFailure","message":"Node condition NvidiaErrorReboot is now: True, reason: XidHardwareFailure, message: \"NVRM: Xid (PCI:0000:b9:00): 71, pid=<unknown>, name=<unknown>, NVLink: fatal error detected on link 6(0x10000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\""},"HealthMonitoringAgentDetectionEvent":"HealthEvent"}