

# Amazon EC2에서 Elastic Fabric Adapter 모니터링
<a name="efa-working-monitor"></a>

다음 기능을 사용해 Elastic Fabric Adapter(EFA)의 성능을 모니터링할 수 있습니다.

**Topics**
+ [Amazon EC2 인스턴스의 EFA 드라이버 메트릭](#efa-driver-metrics)
+ [Amazon VPC 흐름 로그](#efa-flowlog)
+ [Amazon CloudWatch](#efa-cloudwatch)

## Amazon EC2 인스턴스의 EFA 드라이버 메트릭
<a name="efa-driver-metrics"></a>

Elastic Fabric Adapter(EFA) 드라이버는 EFA 인터페이스가 연결된 인스턴스의 여러 지표를 실시간으로 게시합니다. 이러한 메트릭을 사용하여 애플리케이션 성능 및 네트워킹 문제를 해결하고, 워크로드에 적합한 클러스터 크기를 선택하며, 크기 조정을 사전에 계획하고, 애플리케이션 벤치마킹을 통해 인스턴스에서 제공되는 EFA 성능을 최대한 활용하는지 판단할 수 있습니다.

**Topics**
+ [사용 가능한 EFA 드라이버 메트릭](#available-efa-metrics)
+ [인스턴스의 EFA 드라이버 메트릭을 검색합니다.](#view-efa-driver-metrics)

### 사용 가능한 EFA 드라이버 메트릭
<a name="available-efa-metrics"></a>

EFA 드라이버는 인스턴스에 다음과 같은 지표를 실시간으로 게시합니다. 해당 EFA 디바이스는 인스턴스 시작 시점 또는 마지막 드라이버 재설정 이후 누적된 오류 수, 연결 이벤트 수, 그리고 전송/수신/재전송/손실된 패킷 또는 바이트 수를 제공합니다.


| 지표 | 설명 | 지원되는 인스턴스 유형 | 
| --- | --- | --- | 
| tx\_bytes | 전송된 바이트 수입니다.<br />단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 | 
| rx\_bytes | 수신한 바이트 수입니다.<br />단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 | 
| tx\_pkts | 전송된 패킷 수입니다.<br />단위: 수 | EFA를 지원하는 모든 인스턴스 유형 | 
| rx\_pkts | 수신된 패킷 수입니다.<br />단위: 수 | EFA를 지원하는 모든 인스턴스 유형 | 
| rx\_drops | 수신 후 삭제된 패킷 수입니다.<br />단위: 수 | EFA를 지원하는 모든 인스턴스 유형 | 
| send\_bytes | 전송 작업을 사용하여 전송된 바이트 수입니다.<br />단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 | 
| recv\_bytes | 전송 작업을 사용하여 수신된 바이트 수입니다.<br />단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 | 
| send\_wrs | 전송 작업을 사용하여 전송된 패킷 수입니다.<br />단위: 수 | EFA를 지원하는 모든 인스턴스 유형 | 
| recv\_wrs | 전송 작업을 사용하여 수신된 패킷 수입니다.<br />단위: 수 | EFA를 지원하는 모든 인스턴스 유형 | 
| rdma\_write\_wrs | 완료된 rdma 쓰기 작업 수입니다.<br />단위: 수 | EFA를 지원하는 모든 인스턴스 유형 | 
| rdma\_read\_wrs | 완료된 rdma 읽기 작업 수입니다.<br />단위: 수 | EFA를 지원하는 모든 인스턴스 유형 | 
| rdma\_write\_bytes | rdma 쓰기 작업 수를 사용하여 다른 인스턴스에 의해 기록된 바이트 수입니다.<br />단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 | 
| rdma\_read\_bytes | rdma 읽기 작업 수를 사용하여 수신된 바이트 수입니다.<br />단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 | 
| rdma\_write\_wr\_err | 로컬 또는 원격 오류가 발생한 rdma 쓰기 작업 수입니다.<br />단위: 수 | EFA를 지원하는 모든 인스턴스 유형 | 
| rdma\_read\_wr\_err | 로컬 또는 원격 오류가 발생한 rdma 읽기 작업 수입니다.<br />단위: 수 | EFA를 지원하는 모든 인스턴스 유형 | 
| rdma\_read\_resp\_bytes | rdma 읽기 작업 수에 대한 응답으로 전송된 바이트 수입니다.<br />단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 | 
| rdma\_write\_recv\_bytes | rdma 쓰기 작업을 사용하여 수신된 바이트 수입니다.<br />단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 | 
| retrans\_bytes | 재전송된 EFA SRD 바이트 수입니다.<br />단위: 수 | EFA를 지원하는 Nitro v4 이상 인스턴스 유형 | 
| retrans\_pkts | 재전송된 EFA SRD 패킷 수입니다.<br />단위: 바이트 | EFA를 지원하는 Nitro v4 이상 인스턴스 유형 | 
| retrans\_timeout\_events | EFA SRD 트래픽이 시간 초과되어 네트워크 경로가 변경된 횟수입니다.<br />단위: 수 | EFA를 지원하는 Nitro v4 이상 인스턴스 유형 | 
| impaired\_remote\_conn\_events | EFA SRD 연결이 손상된 상태로 전환되어 처리량 속도 제한이 감소한 횟수입니다.<br />단위: 수 | EFA를 지원하는 Nitro v4 이상 인스턴스 유형 | 
| unresponsive\_remote\_events | EFA SRD 원격 연결이 응답하지 않은 횟수입니다.<br />단위: 수 | EFA를 지원하는 Nitro v4 이상 인스턴스 유형 | 

EFA를 지원하는 인스턴스 유형에 대한 자세한 내용은 [지원되는 인스턴스 유형](efa.md#efa-instance-types) 섹션을 참조하세요.

### 인스턴스의 EFA 드라이버 메트릭을 검색합니다.
<a name="view-efa-driver-metrics"></a>

[rdma-tool](https://man7.org/linux/man-pages/man8/rdma.8.html) 명령줄 도구를 사용하여 다음과 같이 인스턴스에 연결된 모든 EFA 인터페이스의 메트릭을 검색할 수 있습니다.

```
$ rdma -p statistic show
link rdmap0s31/1 
    tx_bytes 0 
    tx_pkts 0 
    rx_bytes 0 
    rx_pkts 0 
    rx_drops 0 
    send_bytes 0 
    send_wrs 0 
    recv_bytes 0 
    recv_wrs 0 
    rdma_read_wrs 0 
    rdma_read_bytes 0 
    rdma_read_wr_err 0 
    rdma_read_resp_bytes 0 
    rdma_write_wrs 0 
    rdma_write_bytes 0 
    rdma_write_wr_err 0
    retrans_bytes 0
    retrans_pkts 0
    retrans_timeout_events 0
    unresponsive_remote_events 0
    impaired_remote_conn_events 0
```

또는 다음 명령을 사용하여 sys 파일에서 인스턴스에 연결된 각 EFA 인터페이스의 메트릭을 검색할 수 있습니다.

```
$ more /sys/class/infiniband/{{device_number}}/ports/{{port_number}}/hw_counters/* | cat
```

예제

```
$ more /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/* | cat
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/lifespan
::::::::::::::
12
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_resp_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_wr_err
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_wrs
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_recv_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_wr_err
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_wrs
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/recv_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/recv_wrs
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rx_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rx_drops
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rx_pkts
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/send_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/send_wrs
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/tx_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/tx_pkts
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/retrans_bytes
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/retrans_pkts
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/retrans_timeout_events
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/unresponsive_remote_events
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/impaired_remote_conn_events
::::::::::::::
0
```

## Amazon VPC 흐름 로그
<a name="efa-flowlog"></a>

Amazon VPC 플로우 로그를 생성하여 EFA로 들어오고 나가는 트래픽에 대한 세부 정보를 캡처할 수 있습니다. 플로우 로그 데이터를 Amazon CloudWatch Logs 및 Amazon S3로 게시할 수 있습니다. 플로우 로그를 생성한 다음 선택된 대상의 데이터를 가져와 확인할 수 있습니다. 자세한 내용은 *Amazon VPC 사용 설명서*의 [VPC 흐름 로그](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)를 참조하세요.

탄력적 네트워크 인터페이스에 플로우 로그를 생성한 것과 동일한 방법으로 EFA에 플로우 로그를 생성할 수 있습니다. 자세한 내용은 *Amazon VPC 사용 설명서*의 [플로우 로그 생성](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-flow-logs.html#create-flow-log)을 참조하세요.

다음 예제에서와 같이 플로우 로그 항목에서 EFA 트래픽은 MAC 주소 유형인 `srcAddress`와 `destAddress`으로 식별됩니다.

```
version accountId  eniId        srcAddress        destAddress       sourcePort destPort protocol packets bytes start      end        action log-status
2       3794735123 eni-10000001 01:23:45:67:89:ab 05:23:45:67:89:ab -          -        -        9       5689  1521232534 1524512343 ACCEPT OK
```

## Amazon CloudWatch
<a name="efa-cloudwatch"></a>

Amazon EKS 클러스터에서 EFA를 사용하는 경우 CloudWatch 컨테이너 인사이트를 사용하여 EFA를 모니터링할 수 있습니다. Amazon CloudWatch Container Insights는 `retrans_bytes`, `retrans_pkts`, `retrans_timeout_events`, `unresponsive_remote_events` 및 `impaired_remote_conn_events`를 제외한 모든 [EFA 드라이버 지표](#efa-driver-metrics)를 지원합니다.

자세한 정보는 *Amazon CloudWatch 사용 설명서*의 [Amazon EKS 및 Kubernetes Container Insights 지표](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-enhanced-EKS.html#Container-Insights-metrics-EFA)를 참조하세요.