Amazon EC2에서 Elastic Fabric Adapter 모니터링하기
Amazon EC2에서 Elastic Fabric Adapter 모니터링하기
다음 기능을 사용해 **Elastic Fabric Adapter(EFA)**의 성능을 모니터링할 수 있어요.
출처: 문서
본문
- Amazon EC2 인스턴스용 EFA 드라이버 메트릭 (EFA driver metrics for an Amazon EC2 instance)
- Amazon VPC 흐름 로그 (Amazon VPC flow logs)
- Amazon CloudWatch
EFA 드라이버 메트릭 (EFA driver metrics for an Amazon EC2 instance)
Elastic Fabric Adapter(EFA) 드라이버는 EFA 인터페이스가 연결된 인스턴스에서 여러 메트릭을 실시간으로 게시합니다. 이러한 메트릭을 사용해 애플리케이션 성능과 네트워킹 문제를 트러블슈팅하고, 워크로드에 맞는 올바른 클러스터 크기를 선택하며, 확장 활동을 사전에 계획하고, 인스턴스에서 사용 가능한 EFA 성능을 최대한 활용하는지 애플리케이션을 벤치마킹할 수 있어요.
주제 (Topics)
- Available EFA driver metrics
- Retrieve EFA driver metrics for your instance
사용 가능한 EFA 드라이버 메트릭 (Available EFA driver metrics)
EFA 드라이버는 다음 메트릭을 인스턴스에 실시간으로 게시합니다. 이들은 인스턴스 실행 이후 또는 마지막 드라이버 재설정 이후 연결된 EFA 장치가 오류, 연결 이벤트, 전송·수신·재전송·드롭한 패킷 또는 바이트의 누적 수를 제공합니다.
| 메트릭 | 설명 | 지원되는 인스턴스 유형 |
|---|---|---|
| tx_bytes | 전송된 바이트 수. 단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 |
| rx_bytes | 수신된 바이트 수. 단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 |
| tx_pkts | 전송된 패킷 수. 단위: 개수 | EFA를 지원하는 모든 인스턴스 유형 |
| rx_pkts | 수신된 패킷 수. 단위: 개수 | EFA를 지원하는 모든 인스턴스 유형 |
| rx_drops | 수신된 후 드롭된 패킷 수. 단위: 개수 | EFA를 지원하는 모든 인스턴스 유형 |
| send_bytes | send 작업으로 전송된 바이트 수. 단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 |
| recv_bytes | send 작업으로 수신된 바이트 수. 단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 |
| send_wrs | send 작업으로 전송된 패킷 수. 단위: 개수 | EFA를 지원하는 모든 인스턴스 유형 |
| recv_wrs | send 작업으로 수신된 패킷 수. 단위: 개수 | EFA를 지원하는 모든 인스턴스 유형 |
| rdma_write_wrs | 완료된 rdma write 작업 수. 단위: 개수 | EFA를 지원하는 모든 인스턴스 유형 |
| rdma_read_wrs | 완료된 rdma read 작업 수. 단위: 개수 | EFA를 지원하는 모든 인스턴스 유형 |
| rdma_write_bytes | 다른 인스턴스가 rdma write 작업으로 여기에 쓴 바이트 수. 단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 |
| rdma_read_bytes | rdma read 작업으로 수신된 바이트 수. 단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 |
| rdma_write_wr_err | 로컬 또는 원격 오류가 있었던 rdma write 작업 수. 단위: 개수 | EFA를 지원하는 모든 인스턴스 유형 |
| rdma_read_wr_err | 로컬 또는 원격 오류가 있었던 rdma read 작업 수. 단위: 개수 | EFA를 지원하는 모든 인스턴스 유형 |
| rdma_read_resp_bytes | rdma read 작업에 대한 응답으로 전송된 바이트 수. 단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 |
| rdma_write_recv_bytes | rdma write 작업으로 수신된 바이트 수. 단위: 바이트 | EFA를 지원하는 모든 인스턴스 유형 |
| retrans_bytes | 재전송된 EFA SRD 바이트 수. 단위: 개수 | Nitro v4 이상의 EFA 지원 인스턴스 유형 |
| retrans_pkts | 재전송된 EFA SRD 패킷 수. 단위: 바이트 | Nitro v4 이상의 EFA 지원 인스턴스 유형 |
| retrans_timeout_events | EFA SRD 트래픽이 타임아웃되어 네트워크 경로 변경으로 이어진 횟수. 단위: 개수 | Nitro v4 이상의 EFA 지원 인스턴스 유형 |
| impaired_remote_conn_events | EFA SRD 연결이 손상 상태(impaired state)로 진입해 처리량 속도 제한이 줄어든 횟수. 단위: 개수 | Nitro v4 이상의 EFA 지원 인스턴스 유형 |
| unresponsive_remote_events | EFA SRD 원격 연결이 응답하지 않았던 횟수. 단위: 개수 | Nitro v4 이상의 EFA 지원 인스턴스 유형 |
EFA를 지원하는 인스턴스 유형에 대한 자세한 내용은 Supported instance types 문서를 참고하세요.
내 인스턴스의 EFA 드라이버 메트릭 가져오기 (Retrieve EFA driver metrics for your instance)
rdma 명령줄 도구를 사용해 인스턴스에 연결된 모든 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
또는 다음 명령을 사용해 인스턴스에 연결된 각 EFA 인터페이스의 메트릭을 sys 파일에서 가져올 수 있어요.
$ 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 흐름 로그 (Amazon VPC flow logs)
EFA로 들어오고 나가는 트래픽에 대한 정보를 캡처하기 위해 Amazon VPC Flow Log를 만들 수 있어요. 흐름 로그 데이터는 Amazon CloudWatch Logs와 Amazon S3에 게시할 수 있습니다. 흐름 로그를 만든 후에는 선택한 대상에서 데이터를 검색하고 볼 수 있어요. 자세한 내용은 Amazon VPC User Guide의 VPC Flow Logs 문서를 참고하세요.
EFA용 흐름 로그는 탄력적 네트워크 인터페이스용 흐름 로그를 만드는 것과 같은 방식으로 만듭니다. 자세한 내용은 Amazon VPC User Guide의 Create a 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
인스턴스에서 EFA 드라이버 메트릭을 수집해 CloudWatch에 게시하려면 CloudWatch 에이전트를 사용할 수 있어요. 자세한 내용은 Amazon CloudWatch User Guide의 Collect EFA metrics with the CloudWatch agent 문서를 참고하세요.
Amazon EKS 클러스터에서 EFA를 사용한다면 CloudWatch Container Insights로 EFA를 모니터링할 수 있어요. Amazon CloudWatch Container Insights는 다음을 제외한 모든 EFA 드라이버 메트릭을 지원합니다: retrans_bytes, retrans_pkts, retrans_timeout_events, unresponsive_remote_events, impaired_remote_conn_events. 자세한 내용은 Amazon CloudWatch User Guide의 Amazon EKS and Kubernetes Container Insights metrics 문서를 참고하세요.