

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# SageMaker HyperPod 클러스터 리소스 모니터링
<a name="sagemaker-hyperpod-cluster-observability-slurm"></a>

SageMaker HyperPod 클러스터 리소스 및 소프트웨어 구성 요소를 포괄적으로 관찰하려면 클러스터를 [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) 및 [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)와 통합합니다. Amazon Managed Service for Prometheus와의 통합을 통해 HyperPod 클러스터 리소스와 관련된 지표를 내보낼 수 있으므로 성능, 사용률 및 상태에 대한 인사이트를 얻을 수 있습니다. Amazon Managed Grafana와의 통합을 통해 클러스터의 동작을 모니터링하고 분석하기 위한 직관적인 인터페이스를 제공하는 다양한 Grafana 대시보드를 통해 이러한 지표를 시각화할 수 있습니다. 이러한 서비스를 활용하면 HyperPod 클러스터를 중앙 집중식으로 통합하여 분산 훈련 워크로드의 사전 모니터링, 문제 해결 및 최적화를 촉진할 수 있습니다.

**작은 정보**  
실제 예제 및 솔루션을 찾으려면 [SageMaker HyperPod 워크숍](https://catalog.workshops.aws/sagemaker-hyperpod)도 참조하세요.

![\[Amazon Managed Service for Prometheus 및 Amazon Managed Grafana를 사용하여 SageMaker HyperPod를 구성하는 방법에 대한 개요입니다.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/hyperpod-observability-architecture.png)


그림: 이 아키텍처 다이어그램은 Amazon Managed Service for Prometheus 및 Amazon Managed Grafana를 사용하여 SageMaker HyperPod를 구성하는 개요를 보여줍니다.

다음 주제로 이동하여 SageMaker HyperPod 클러스터 관찰 가능성을 설정합니다.

**Topics**
+ [SageMaker HyperPod 클러스터 관찰성을 위한 사전 조건](sagemaker-hyperpod-cluster-observability-slurm-prerequisites.md)
+ [HyperPod 클러스터에 지표 내보내기 패키지 설치](sagemaker-hyperpod-cluster-observability-slurm-install-exporters.md)
+ [HyperPod 클러스터의 헤드 노드에서 Prometheus 설정 검증](sagemaker-hyperpod-cluster-observability-slurm-validate-prometheus-setup.md)
+ [Amazon Managed Grafana 작업 영역 설정](sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws.md)
+ [내보낸 메트릭 참조](sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference.md)
+ [Amazon SageMaker HyperPod Slurm 지표](smcluster-slurm-metrics.md)

# SageMaker HyperPod 클러스터 관찰성을 위한 사전 조건
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites"></a>

[HyperPod 클러스터에 지표 내보내기 패키지 설치](sagemaker-hyperpod-cluster-observability-slurm-install-exporters.md)에 대한 단계를 진행하기 전에 다음 사전 조건이 충족되었는지 확인합니다.

## IAM Identity Center 활성화
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites-iam-id-center"></a>

SageMaker HyperPod 클러스터에 대한 관찰 가능성을 활성화하려면 먼저 IAM Identity Center를 활성화해야 합니다. 이는 Amazon Managed Grafana 워크스페이스와 Amazon Managed Service for Prometheus를 설정하는 CloudFormation 스택을 배포하기 위한 사전 조건입니다. 이 두 서비스 모두 인증 및 권한 부여를 위해 IAM Identity Center가 필요하므로 모니터링 인프라의 안전한 사용자 액세스 및 관리를 보장합니다.

IAM Identity Center 활성화에 대한 자세한 지침은 *AWS IAM Identity Center 사용 설명서*의 [IAM Identity Center 활성화](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html) 섹션을 참조하세요.

IAM Identity Center를 성공적으로 활성화한 후 다음 구성 절차 전반에서 관리 사용자 역할을 할 사용자 계정을 설정합니다.

## SageMaker HyperPod 관찰성을 위한 CloudFormation 스택 생성 및 배포
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites-cloudformation-stack"></a>

SageMaker HyperPod 관찰 가능성을 위한 CloudFormation 스택을 생성하고 배포하여 Amazon Managed Service for Prometheus 및 Amazon Managed Grafana를 사용하여 실시간으로 HyperPod 클러스터 지표를 모니터링합니다. 스택을 배포하려면 [IAM Identity Center](https://console.aws.amazon.com/singlesignon)도 미리 활성화해야 합니다.

Amazon VPC 서브넷, Amazon FSx for Lustre 파일 시스템, Amazon S3 버킷 및 HyperPod 클러스터 관찰 스택을 생성하는 데 필요한 IAM 역할을 설정하는 데 도움이 되는 샘플 CloudFormation 스크립트 [https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/4.prometheus-grafana/cluster-observability.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/4.prometheus-grafana/cluster-observability.yaml)를 사용합니다.

# HyperPod 클러스터에 지표 내보내기 패키지 설치
<a name="sagemaker-hyperpod-cluster-observability-slurm-install-exporters"></a>

SageMaker HyperPod 팀이 제공하는 [기본 구성 수명 주기 스크립트](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md)에는 다양한 지표 내보내기 패키지의 설치도 포함됩니다. 설치 단계를 활성화하려면 [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py) 파일에서 `enable_observability=True` 파라미터를 설정해야 합니다. 수명 주기 스크립트는 다음 오픈 소스 지표 내보내기 패키지를 사용하여 클러스터를 부트스트랩하도록 설계되었습니다.


|  |  |  | 
| --- |--- |--- |
| 이름 | 스크립트 배포 대상 노드 | 내보내기 설명 | 
| [Prometheus용 Slurm 내보내기](https://github.com/vpenso/prometheus-slurm-exporter) | 헤드(컨트롤러) 노드 |  Slurm 계정 지표를 내보냅니다.  | 
|  [EFA(Elastic Fabric Adapter) 노드 내보내기](https://github.com/aws-samples/awsome-distributed-training/tree/main/4.validation_and_observability/3.efa-node-exporter)  |  컴퓨팅 노드  |  클러스터 노드 및 EFA에서 지표를 내보냅니다. 패키지는 [Prometheus 노드 내보내기](https://github.com/prometheus/node_exporter) 의 포크입니다.  | 
|  [NVIDIA Data Center GPU Management(DCGM) 내보내기](https://github.com/NVIDIA/dcgm-exporter)  | 컴퓨팅 노드 |  NVIDIA GPU의 상태 및 성능에 대한 NVIDIA DCGM 메트릭을 내보냅니다.  | 

[https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py) 파일에서 `enable_observability=True`를 사용하면 [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py) 스크립트에서 다음 설치 단계가 활성화됩니다.

```
# Install metric exporting software and Prometheus for observability
if Config.enable_observability:
    if node_type == SlurmNodeType.COMPUTE_NODE:
        ExecuteBashScript("./utils/install_docker.sh").run()
        ExecuteBashScript("./utils/install_dcgm_exporter.sh").run()
        ExecuteBashScript("./utils/install_efa_node_exporter.sh").run()

    if node_type == SlurmNodeType.HEAD_NODE:
        wait_for_scontrol()
        ExecuteBashScript("./utils/install_docker.sh").run()
        ExecuteBashScript("./utils/install_slurm_exporter.sh").run()
        ExecuteBashScript("./utils/install_prometheus.sh").run()
```

컴퓨팅 노드에서 스크립트는 NVIDIA Data Center GPU Management(DCGM) 내보내기와 EFA(Elastic Fabric Adapter) 노드 내보내기를 설치합니다. DCGM Exporter는 NVIDIA GPU에서 지표를 수집하는 Prometheus용 Exporter로, GPU 사용량, 성능 및 상태를 모니터링할 수 있습니다. 반면 EFA 노드 내보내기는 HPC 클러스터에서 지연 시간이 짧고 고대역폭 통신에 필수적인 EFA 네트워크 인터페이스와 관련된 지표를 수집합니다.

헤드 노드에서 스크립트는 Prometheus용 Slurm 내보내기 및 [Prometheus 오픈 소스 소프트웨어](https://prometheus.io/docs/introduction/overview/)를 설치합니다. Slurm 내보내기는 Prometheus에 Slurm 작업, 파티션 및 노드 상태와 관련된 지표를 제공합니다.

수명 주기 스크립트는 모든 내보내기 패키지를 도커 컨테이너로 설치하도록 설계되었으므로 Docker 패키지도 헤드 노드와 컴퓨팅 노드 모두에 설치해야 합니다. 이러한 구성 요소에 대한 스크립트는 *Awsome Distributed Training GitHub 리포지토리*의 [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils) 폴더에 편리하게 제공됩니다.

내보내기 패키지와 함께 설치된 HyperPod 클러스터를 성공적으로 설정한 후 다음 주제로 이동하여 Amazon Managed Service for Prometheus 및 Amazon Managed Grafana 설정을 완료합니다.

# HyperPod 클러스터의 헤드 노드에서 Prometheus 설정 검증
<a name="sagemaker-hyperpod-cluster-observability-slurm-validate-prometheus-setup"></a>

내보내기 패키지와 함께 설치된 HyperPod 클러스터를 성공적으로 설정한 후, Prometheus가 HyperPod 클러스터의 헤드 노드에 제대로 설정되어 있는지 확인합니다.

1. 클러스터의 헤드 노드에 연결합니다. 노드 액세스 방법에 대한 지침은 [SageMaker HyperPod 클러스터 노드에 액세스](sagemaker-hyperpod-run-jobs-slurm-access-nodes.md) 섹션을 참조하세요.

1. 다음 명령을 실행하여 수명 주기 스크립트 `install_prometheus.sh`에서 생성된 Prometheus 구성 및 서비스 파일이 컨트롤러 노드에서 실행되고 있는지 확인합니다. 출력은 활성 상태를 **active (running)**로 표시해야 합니다.

   ```
   $ sudo systemctl status prometheus
   • prometheus service - Prometheus Exporter
   Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; preset:disabled)
   Active: active (running) since DAY YYYY-MM-DD HH:MM:SS UTC; Ss ago
   Main PID: 12345 (prometheus)
   Tasks: 7 (limit: 9281)
   Memory: 35M
   CPU: 234ms
   CGroup: /system.slice/prometheus.service
           -12345 /usr/bin/prometheus--config.file=/etc/prometheus/prometheus.yml
   ```

1. 다음과 같이 Prometheus 구성 파일을 검증합니다. 출력은 다음과 유사해야 하며, 3개의 내보내기가 올바른 컴퓨팅 노드 IP 주소로 구성되어 있어야 합니다.

   ```
   $ cat /etc/prometheus/prometheus.yml
   global:
     scrape_interval: 15s
     evaluation_interval: 15s
     scrape_timeout: 15s
   
   scrape_configs:
     - job_name: 'slurm_exporter'
       static_configs:
         - targets:
             - 'localhost:8080'
     - job_name: 'dcgm_exporter'
       static_configs:
         - targets:
             - '<ComputeNodeIP>:9400'
             - '<ComputeNodeIP>:9400'
     - job_name: 'efa_node_exporter'
       static_configs:
         - targets:
             - '<ComputeNodeIP>:9100'
             - '<ComputeNodeIP>:9100'
   
   remote_write:
     - url: <AMPReoteWriteURL>
       queue_config:
         max_samples_per_send: 1000
         max_shards: 200
         capacity: 2500
       sigv4:
         region: <Region>
   ```

1. Prometheus가 Slurm, DCGM 및 EFA 지표를 올바르게 내보내고 있는지 테스트하려면 헤드 노드의 포트 `:9090`에서 Prometheus에 대해 다음 `curl` 명령을 실행합니다.

   ```
   $ curl -s http://localhost:9090/metrics | grep -E 'slurm|dcgm|efa'
   ```

   컨트롤러 노드에서 Prometheus 원격 쓰기 구성을 통해 Amazon Managed Service for Prometheus Workspace로 내보낸 지표를 사용하여 다음 주제로 이동하여 Amazon Managed Grafana 대시보드를 설정하여 지표를 표시할 수 있습니다.

# Amazon Managed Grafana 작업 영역 설정
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws"></a>

Amazon Managed Service for Prometheus를 데이터 소스로 사용하여 새 Amazon Managed Grafana 작업 영역을 생성하거나 기존 Amazon Managed Grafana 작업 영역을 업데이트합니다.

**Topics**
+ [Grafana 작업 영역을 생성하고 Amazon Managed Service for Prometheus를 데이터 소스로 추가합니다.](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-create)
+ [Grafana 작업 영역을 열고 데이터 소스 설정을 완료합니다.](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-connect-data-source)
+ [오픈 소스 Grafana 대시보드 가져오기](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-import-dashboards)

## Grafana 작업 영역을 생성하고 Amazon Managed Service for Prometheus를 데이터 소스로 추가합니다.
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-create"></a>

Amazon Managed Service for Prometheus의 지표를 시각화하려면 Amazon Managed Grafana 작업 영역을 생성하고 Amazon Managed Service for Prometheus를 데이터 소스로 사용하도록 설정합니다.

1. Grafana 작업 영역을 생성하려면 *Amazon Managed Service for Prometheus 사용 설명서*에서 [작업 영역 생성](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-create-workspace.html#creating-workspace)의 지침을 따르세요.

   1. 13단계에서 Amazon Managed Service for Prometheus를 데이터 소스로 선택합니다.

   1. 17단계에서는 관리자 사용자와 IAM Identity Center의 다른 사용자를 추가할 수 있습니다.

자세한 정보는 다음 리소스도 참조하세요.
+ *Amazon Managed Service for Prometheus 사용 설명서*에서 [Amazon Managed Service for Prometheus와 함께 사용할 Amazon Managed Grafana 설정](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-amg.html)
+ Amazon [Managed Grafana 사용 설명서의 AWS 데이터 소스 구성을 사용하여 Amazon Managed Service for Prometheus를 데이터 소스로 추가](https://docs.aws.amazon.com/grafana/latest/userguide/AMP-adding-AWS-config.html) **

## Grafana 작업 영역을 열고 데이터 소스 설정을 완료합니다.
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-connect-data-source"></a>

Amazon Managed Grafana 작업 영역을 성공적으로 생성하거나 업데이트한 후 작업 영역 URL을 선택하여 작업 영역을 엽니다. 그러면 IAM Identity Center에서 설정한 사용자의 사용자 이름과 암호를 입력하라는 메시지가 표시됩니다. 관리자를 사용하여 로그인하여 작업 영역 설정을 완료해야 합니다.

1. 작업 영역 **홈** 페이지에서 **앱**, **AWS 데이터 소스** 및 **데이터 소스**를 선택합니다.

1. **데이터 소스** 페이지로 이동하여 새 **데이터 소스**를 선택합니다.

1. **서비스**에 Amazon Managed Service for Prometheus를 선택합니다.

1. **데이터 소스 찾아보기 및 프로비저닝** 섹션에서 Amazon Managed Service for Prometheus 워크스페이스를 프로비저닝한 AWS 리전을 선택합니다.

1. 선택한 리전의 데이터 소스 목록에서 Amazon Managed Service for Prometheus에 대한 소스를 선택합니다. HyperPod 관찰 스택에 대해 설정한 Amazon Managed Service for Prometheus 작업 영역의 리소스 ID와 리소스 별칭을 확인해야 합니다.

## 오픈 소스 Grafana 대시보드 가져오기
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-import-dashboards"></a>

Amazon Managed Service for Prometheus를 데이터 소스로 사용하여 Amazon Managed Grafana 작업 영역을 성공적으로 설정한 후에는 Prometheus에 대한 지표 수집을 시작한 다음 차트, 정보 등을 보여주는 다양한 대시보드를 보기 시작해야 합니다. Grafana 오픈 소스 소프트웨어는 다양한 대시보드를 제공하며 Amazon Managed Grafana로 가져올 수 있습니다.

**오픈 소스 Grafana 대시보드를 Amazon Managed Grafana로 가져오려면**

1. Amazon Managed Grafana 작업 영역의 **홈** 페이지에서 **대시보드**를 선택합니다.

1. UI 텍스트 **새로 만들기**를 사용하여 드롭다운 메뉴 버튼을 선택하고 **가져오기**를 선택합니다.

1. [Slurm 대시보드](https://grafana.com/grafana/dashboards/4323-slurm-dashboard/)에 URL을 붙여넣습니다.

   ```
   https://grafana.com/grafana/dashboards/4323-slurm-dashboard/
   ```

1. **로드**를 선택합니다.

1. 이전 단계를 반복하여 다음 대시보드를 가져옵니다.

   1. [Node Exporter 전체 대시보드](https://grafana.com/grafana/dashboards/1860-node-exporter-full/)

      ```
      https://grafana.com/grafana/dashboards/1860-node-exporter-full/
      ```

   1. [NVIDIA DCGM Exporter 대시보드](https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/)

      ```
      https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/
      ```

   1. [EFA 지표 대시보드](https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/)

      ```
      https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/
      ```

   1. [FSx for Lustre 지표 대시보드](https://grafana.com/grafana/dashboards/20906-fsx-lustre/)

      ```
      https://grafana.com/grafana/dashboards/20906-fsx-lustre/
      ```

# 내보낸 메트릭 참조
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference"></a>

다음 섹션에서는 SageMaker HyperPod 관찰성을 위해 CloudFormation 스택을 성공적으로 구성할 때 SageMaker HyperPod에서 Amazon Managed Service for Prometheus로 내보낸 지표의 포괄적인 목록을 제공합니다. Amazon Managed Grafana 대시보드에서 시각화된 이러한 지표 모니터링을 시작할 수 있습니다.

## Slurm 내보내기 대시보드
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-slurm-exporter"></a>

SageMaker HyperPod의 Slurm 클러스터에 대한 시각화된 정보를 제공합니다.

**메트릭의 유형**
+ **클러스터 개요:** 노드, 작업 및 해당 상태의 총 수를 표시합니다.
+ **작업 메트릭:** 시간 경과에 따른 작업 수 및 상태 시각화.
+ **노드 메트릭:** 노드 상태, 할당 및 사용 가능한 리소스를 표시합니다.
+ **파티션 메트릭:** CPU, 메모리 및 GPU 사용률과 같은 파티션별 지표를 모니터링합니다.
+ **작업 효율성:** 사용된 리소스를 기반으로 작업 효율성을 계산합니다.

**메트릭의 목록**


| 지표 이름 | 설명 | 
| --- | --- | 
| slurm\$1job\$1count | Slurm 클러스터의 총 작업 수 | 
| slurm\$1job\$1state\$1count | 각 상태의 작업 수(예: 실행 중, 보류 중, 완료됨) | 
| slurm\$1node\$1count  | Slurm 클러스터의 노드 총 수입니다. | 
| slurm\$1node\$1state\$1count  | 각 상태의 노드 수(예: 유휴, 할당, 혼합) | 
| slurm\$1partition\$1node\$1count  | 각 파티션의 노드 수 | 
| slurm\$1partition\$1job\$1count  | 각 파티션의 작업 수 | 
| slurm\$1partition\$1alloc\$1cpus  | 각 파티션에 할당된 총 CPU 수 | 
| slurm\$1partition\$1free\$1cpus  | 각 파티션에서 사용 가능한 총 CPU 수 | 
| slurm\$1partition\$1alloc\$1memory  | 각 파티션에 할당된 총 메모리 | 
| slurm\$1partition\$1free\$1memory  | 각 파티션에서 사용 가능한 총 메모리 | 
| slurm\$1partition\$1alloc\$1gpus  | 각 파티션에 할당된 총 GPU | 
| slurm\$1partition\$1free\$1gpus  | 각 파티션에서 사용 가능한 총 GPU | 

## 노드 내보내기 대시보드
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-node-exporter"></a>

HyperPod 클러스터 [노드에서 Prometheus 노드 내보내기](https://github.com/prometheus/node_exporter)가 수집한 시스템 지표의 시각화된 정보를 제공합니다.

**메트릭의 유형**
+ **시스템 개요:** CPU 부하 평균 및 메모리 사용량 표시.
+ **메모리 메트릭:** 총 메모리, 여유 메모리 및 스왑 공간을 포함한 메모리 사용률 시각화.
+ **디스크 사용량:** 디스크 공간 사용률 및 가용성을 모니터링합니다.
+ **네트워크 트래픽:** 시간 경과에 따라 수신 및 전송되는 네트워크 바이트를 표시합니다.
+ **파일 시스템 지표:** 파일 시스템 사용량 및 가용성 분석.
+ **디스크 I/O 지표:** 디스크 읽기 및 쓰기 활동을 시각화합니다.

**메트릭 목록**

내보낸 지표의 전체 목록은 [노드 내보내기](https://github.com/prometheus/node_exporter?tab=readme-ov-file#enabled-by-default) 및 [procfs](https://github.com/prometheus/procfs?tab=readme-ov-file) GitHub 리포지토리를 참조하세요. 다음 표에는 CPU 로드, 메모리 사용량, 디스크 공간 및 네트워크 활동과 같은 시스템 리소스 사용률에 대한 인사이트를 제공하는 지표의 하위 집합이 나와 있습니다.


| 지표 이름 | 설명 | 
| --- | --- | 
|  node\$1load1  | 1분 로드 평균 | 
|  node\$1load5  | 5분 로드 평균 | 
|  node\$1load15  | 15분 로드 평균 | 
|  node\$1memory\$1MemTotal  | 총 시스템 메모리 | 
|  node\$1memory\$1MemFree  | 무료 시스템 메모리 | 
|  node\$1memory\$1MemAvailable  | 프로세스에 할당할 수 있는 메모리 | 
|  node\$1memory\$1Buffers  | 커널에서 버퍼링에 사용하는 메모리 | 
|  node\$1memory\$1Cached  | 커널에서 파일 시스템 데이터를 캐싱하는 데 사용되는 메모리 | 
|  node\$1memory\$1SwapTotal  | 사용 가능한 총 스왑 공간 | 
|  node\$1memory\$1SwapFree  | 자유 스왑 공간 | 
|  node\$1memory\$1SwapCached  | 한 번 교체된 메모리는 다시 교체되었지만 여전히 교체 중입니다 | 
|  node\$1filesystem\$1avail\$1bytes  | 사용 가능한 디스크 공간(바이트) | 
|  node\$1filesystem\$1size\$1bytes  | 총 디스크 공간(바이트) | 
|  node\$1filesystem\$1free\$1bytes  | 여유 디스크 공간(바이트) | 
|  node\$1network\$1receive\$1bytes  | 수신된 네트워크 바이트 | 
|  node\$1network\$1transmit\$1bytes  | 전송된 네트워크 바이트 | 
|  node\$1disk\$1read\$1bytes  | 읽은 디스크 바이트 | 
|  node\$1disk\$1written\$1bytes  | 작성된 디스크 바이트 | 

## NVIDIA DCGM 내보내기 대시보드
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-nvidia-dcgm-exporter"></a>

NVIDIA [DCGM 내보내기](https://github.com/NVIDIA/dcgm-exporter)에서 수집한 NVIDIA GPU 지표의 시각화된 정보를 제공합니다.

**지표의 유형**
+ **GPU 개요:** GPU 사용률, 온도, 전력 사용량 및 메모리 사용량 표시.
+ **온도 지표: 시간 경과에 따른 GPU 온도** 시각화.
+ **전력 사용량:** GPU 전력 소비 및 전력 사용량 추세 모니터링.
+ **메모리 사용률:** 사용된 메모리, 사용 가능한 메모리 및 총 메모리를 포함하여 GPU 메모리 사용량을 분석합니다.
+ **팬 속도:** GPU 팬 속도 및 변형 표시.
+ **ECC 오류:** GPU 메모리 ECC 오류 및 보류 중인 오류 추적.

**메트릭 목록**

다음 표에는 클록 주파수, 온도, 전력 사용량, 메모리 사용률, 팬 속도 및 오류 지표를 포함하여 NVIDIA GPU 상태 및 성능에 대한 인사이트를 제공하는 지표 목록이 나와 있습니다.


| 메트릭 이름 | 설명 | 
| --- | --- | 
|  DCGM\$1FI\$1DEV\$1SM\$1CLOCK  | SM 클럭 주파수(MHz) | 
|  DCGM\$1FI\$1DEV\$1MEM\$1CLOCK  | 메모리 클럭 주파수(MHz) | 
|  DCGM\$1FI\$1DEV\$1MEMORY\$1TEMP  | 메모리 온도(C) | 
|  DCGM\$1FI\$1DEV\$1GPU\$1TEMP  | GPU 온도(C) | 
|  DCGM\$1FI\$1DEV\$1POWER\$1USAGE  | 전력 소비(W) | 
|  DCGM\$1FI\$1DEV\$1TOTAL\$1ENERGY\$1CONSUMPTION  | 부팅 이후 총 에너지 소비(mJ) | 
|  DCGM\$1FI\$1DEV\$1PCIE\$1REPLAY\$1COUNTER  | 총 PCIe 재시도 횟수 | 
|  DCGM\$1FI\$1DEV\$1MEM\$1COPY\$1UTIL  | 메모리 사용률(%) | 
|  DCGM\$1FI\$1DEV\$1ENC\$1UTIL  | 인코더 사용률(%) | 
|  DCGM\$1FI\$1DEV\$1DEC\$1UTIL  | 디코더 사용률(%) | 
|  DCGM\$1FI\$1DEV\$1XID\$1ERRORS  | 발생한 마지막 XID 오류의 값 | 
|  DCGM\$1FI\$1DEV\$1FB\$1FREE  | 프레임 버퍼 메모리 없음(MiB) | 
|  DCGM\$1FI\$1DEV\$1FB\$1USED  | 사용된 프레임 버퍼 메모리(MiB) | 
|  DCGM\$1FI\$1DEV\$1NVLINK\$1BANDWIDTH\$1TOTAL  | 모든 레인의 총 NVLink 대역폭 카운터 수 | 
|  DCGM\$1FI\$1DEV\$1VGPU\$1LICENSE\$1STATUS  | vGPU 라이선스 상태 | 
|  DCGM\$1FI\$1DEV\$1UNCORRECTABLE\$1REMAPPED\$1ROWS  | 수정할 수 없는 오류에 대해 다시 매핑된 행 수 | 
|  DCGM\$1FI\$1DEV\$1CORRECTABLE\$1REMAPPED\$1ROWS  | 수정 가능한 오류에 대해 다시 매핑된 행 수 | 
|  DCGM\$1FI\$1DEV\$1ROW\$1REMAP\$1FAILURE  | 행 재매핑 실패 여부 | 

## EFA 지표 대시보드
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-efa-exporter"></a>

[EFA 노드 내보내기](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/3.efa-node-exporter/README.md)에서 수집한 P 인스턴스에 장착된 [Amazon Elastic Fabric Adapter(EFA)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html)의 지표에 대한 시각화된 정보를 제공합니다.

**메트릭 유형**
+ **EFA 오류 지표:** 할당 오류, 명령 오류 및 메모리 맵 오류와 같은 오류를 시각화합니다.
+ **EFA 네트워크 트래픽:** 수신 및 전송된 바이트, 패킷 및 작업 요청을 모니터링합니다.
+ **EFA RDMA 성능:** 전송된 바이트 및 오류율을 포함한 RDMA 읽기 및 쓰기 작업 분석.
+ **EFA 포트 수명:** 시간 경과에 따른 EFA 포트 수명 표시.
+ **EFA 연결 유지 패킷:** 수신된 연결 유지 패킷 수를 추적합니다.

**메트릭 목록**

다음 표에는 오류, 완료된 명령, 네트워크 트래픽 및 리소스 사용률을 포함하여 EFA 작업의 다양한 측면에 대한 인사이트를 제공하는 지표 목록이 나와 있습니다.


| 메트릭 이름 | 설명 | 
| --- | --- | 
|  node\$1amazonefa\$1info  | /sys/class/infiniband/의 숫자가 아닌 데이터는 값이 항상 1입니다. | 
|  node\$1amazonefa\$1lifespan  | 포트 수명 | 
|  node\$1amazonefa\$1rdma\$1read\$1bytes  | RDMA로 읽은 바이트 수 | 
|  node\$1amazonefa\$1rdma\$1read\$1resp\$1bytes  | RDMA를 사용한 읽기 응답 바이트 수 | 
|  node\$1amazonefa\$1rdma\$1read\$1wr\$1err  | RDMA의 읽기 쓰기 오류 수 | 
|  node\$1amazonefa\$1rdma\$1read\$1wrs  | RDMA가 있는 읽기 rs 수 | 
|  node\$1amazonefa\$1rdma\$1write\$1bytes  | RDMA로 작성된 바이트 수 | 
|  node\$1amazonefa\$1rdma\$1write\$1recv\$1bytes  | RDMA로 쓰고 받은 바이트 수 | 
|  node\$1amazonefa\$1rdma\$1write\$1wr\$1err  | 오류 RDMA로 작성된 바이트 수 | 
|  node\$1amazonefa\$1rdma\$1write\$1wrs  | 쓰인 wrs RDMA의 바이트 수 | 
|  node\$1amazonefa\$1recv\$1bytes  | 수신한 바이트 수 | 
|  node\$1amazonefa\$1recv\$1wrs  | 수신한 바이트 wrs 수 | 
|  node\$1amazonefa\$1rx\$1bytes  | 수신한 바이트 수 | 
|  node\$1amazonefa\$1rx\$1drops  | 삭제된 패킷 수 | 
|  node\$1amazonefa\$1rx\$1pkts  | 수신된 패킷 수 | 
|  node\$1amazonefa\$1send\$1bytes  | 전송된 바이트 수 | 
|  node\$1amazonefa\$1send\$1wrs  | 전송된 wrs 수 | 
|  node\$1amazonefa\$1tx\$1bytes  | 전송된 바이트 수 | 
|  node\$1amazonefa\$1tx\$1pkts  | 전송된 패킷 수 | 

## FSx for Lustre 지표 대시보드
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-fsx-exporter"></a>

[Amazon CloudWatch](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html)에서 수집한 [Amazon FSx for Lustre 파일 시스템의 메트릭](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html)에 대한 시각화된 정보를 제공합니다.

**참고**  
Grafana FSx for Lustre 대시보드는 Amazon CloudWatch를 데이터 소스로 사용하며, 이는 Amazon Managed Service for Prometheus를 사용하도록 구성한 다른 대시보드와 다릅니다. FSx for Lustre 파일 시스템과 관련된 지표를 정확하게 모니터링하고 시각화하려면 Amazon CloudWatch를 데이터 소스로 사용하도록 FSx for Lustre 대시보드를 구성하여 FSx for Lustre 파일 시스템이 배포되는 AWS 리전 위치를 동일하게 지정합니다.

**메트릭의 유형**
+ **DataReadBytes:** 각 파일 시스템 읽기 작업의 바이트 수.
+ **DataWriteBytes:** 각 파일 쓰기 작업의 바이트 수.
+ **DataReadOperations:** 읽기 작업 수.
+ **DataWriteOperations:** 쓰기 작업 수.
+ **MetadataOperations:** 메타 데이터 작업 수.
+ **FreeDataStorageCapacity:** 사용 가능한 스토리지 용량.

# Amazon SageMaker HyperPod Slurm 지표
<a name="smcluster-slurm-metrics"></a>

Amazon SageMaker HyperPod는 HyperPod 클러스터의 상태와 성능을 모니터링하는 데 사용할 수 있는 Amazon CloudWatch 지표 세트를 제공합니다. 이러한 지표는 HyperPod 클러스터에서 실행되는 Slurm 워크로드 관리자에서 수집되며 `/aws/sagemaker/Clusters` CloudWatch 네임스페이스에서 사용할 수 있습니다.

## 클러스터 수준 지표
<a name="smcluster-slurm-metrics-cluster"></a>

HyperPod에 사용할 수 있는 클러스터 수준 지표는 다음과 같습니다. 이러한 지표는 `ClusterId` 차원을 사용하여 특정 HyperPod 클러스터를 식별합니다.


| CloudWatch 지표 명칭 | 참고 | Amazon EKS Container Insights 지표 이름 | 
| --- | --- | --- | 
| cluster\$1node\$1count | Slurm 클러스터의 총 노드 수 | cluster\$1node\$1count | 
| cluster\$1idle\$1node\$1count | 클러스터의 유휴 노드 수 | 해당 사항 없음 | 
| cluster\$1failed\$1node\$1count | 클러스터의 실패한 노드 수 | cluster\$1failed\$1node\$1count | 
| cluster\$1cpu\$1count | 클러스터의 총 CPU 코어 수 | node\$1cpu\$1limit | 
| cluster\$1idle\$1cpu\$1count | 클러스터의 유휴 CPU 코어 수 | 해당 사항 없음 | 
| cluster\$1gpu\$1count | 클러스터의 총 GPU 수 | node\$1gpu\$1limit | 
| cluster\$1idle\$1gpu\$1count | 클러스터의 유휴 GPU 수 | 해당 사항 없음 | 
| cluster\$1running\$1task\$1count | 클러스터의 실행 중인 Slurm 작업 수 | 해당 사항 없음 | 
| cluster\$1pending\$1task\$1count | 클러스터의 보류 중인 Slurm 작업 수 | 해당 사항 없음 | 
| cluster\$1preempted\$1task\$1count | 클러스터의 선점된 Slurm 작업 수 | 해당 사항 없음 | 
| cluster\$1avg\$1task\$1wait\$1time | 클러스터의 Slurm 작업에 대한 평균 대기 시간 | 해당 사항 없음 | 
| cluster\$1max\$1task\$1wait\$1time | 클러스터의 Slurm 작업에 대한 최대 대기 시간 | 해당 사항 없음 | 

## 인스턴스 수준 지표
<a name="smcluster-slurm-metrics-instance"></a>

HyperPod에 사용할 수 있는 인스턴스 수준 지표는 다음과 같습니다. 또한 이러한 지표는 `ClusterId` 차원을 사용하여 특정 HyperPod 클러스터를 식별합니다.


| CloudWatch 지표 명칭 | 참고 | Amazon EKS Container Insights 지표 이름 | 
| --- | --- | --- | 
| node\$1gpu\$1utilization | 모든 인스턴스의 평균 GPU 사용률 | node\$1gpu\$1utilization | 
| node\$1gpu\$1memory\$1utilization | 모든 인스턴스의 평균 GPU 메모리 사용률 | node\$1gpu\$1memory\$1utilization | 
| node\$1cpu\$1utilization | 모든 인스턴스의 평균 CPU 사용률 | node\$1cpu\$1utilization | 
| node\$1memory\$1utilization | 모든 인스턴스의 평균 메모리 사용률 | node\$1memory\$1utilization | 