HPC & GPU Engineering/AI Infrastructure Engineer

[HPC/GPU 클러스터 운영 Linux Deep Dive 12편] 네트워크 성능 진단 – ifstat, iperf, ethtool 제대로 활용하기

ygtoken 2025. 8. 16. 09:51
728x90

왜 네트워크 모니터링이 중요한가

 

HPC/GPU 클러스터는 노드 간 통신이 매우 빈번합니다. 단일 서버라면 CPU와 GPU 자원만으로 성능을 판단할 수 있겠지만, 수십·수백 대의 노드가 함께 학습을 수행하는 분산 학습 환경에서는 네트워크 성능이 전체 속도의 발목을 잡는 경우가 많습니다.

 

특히 MPI 기반의 병렬 연산이나 NCCL을 활용한 GPU 간 통신은 **대역폭(bandwidth)**과 **지연시간(latency)**에 민감합니다. 따라서 네트워크 병목을 신속히 파악할 수 있는 모니터링 도구는 HPC 운영자에게 필수입니다. 이번 글에서는 대표적인 세 가지 툴, ifstat, iperf, ethtool을 살펴보겠습니다.

 


 

ifstat – 인터페이스 실시간 트래픽 확인

 

ifstat는 네트워크 인터페이스별 송수신 트래픽을 실시간으로 보여주는 간단하면서도 강력한 도구입니다. CPU의 top과 비슷하게, 가볍게 확인할 때 유용합니다.

 

 

주요 활용법

# 기본 사용 – 모든 인터페이스 출력
ifstat

# 특정 인터페이스만 모니터링 (예: eth0)
ifstat -i eth0 1

# 헤더 반복 출력
ifstat -t 1

 

출력 지표 해석

 

  • KB/s in: 초당 수신 데이터 양
  • KB/s out: 초당 송신 데이터 양

 

 

HPC 운영 포인트

 

  • GPU Job이 여러 노드에 걸쳐 실행될 때, 특정 노드의 네트워크 사용률이 비정상적으로 낮거나 높다면 Job 간 데이터 전송 불균형을 의심할 수 있습니다.
  • Lustre 같은 병렬 파일시스템 사용 시, 메타데이터 서버(MDS)와 클라이언트 간 트래픽을 빠르게 확인하는 데 유용합니다.

 


 

iperf – 대역폭 및 지연시간 측정

 

iperf는 네트워크 성능을 정량적으로 측정할 수 있는 가장 널리 쓰이는 벤치마크 도구입니다. TCP와 UDP 모두를 지원하며, 노드 간 실제 전송 속도와 지연 특성을 확인할 수 있습니다.

 

 

기본 사용법

 

서버 측:

iperf -s

클라이언트 측:

iperf -c <server_ip>

 

고급 활용

 

  • UDP 모드
iperf -u -c <server_ip> -b 10G

 

  • → 10Gbps 전송을 시도하며 손실률 측정
  • 양방향 테스트
iperf -d -c <server_ip>

 

  • → 동시에 송신/수신 성능 확인
  • 다중 스트림 활용
iperf -P 8 -c <server_ip>

 

  • → 멀티 스트림으로 대역폭 활용률 측정

 

 

HPC 운영 포인트

 

  • InfiniBand나 RoCE(RDMA over Converged Ethernet) 네트워크를 사용할 때, iperf는 기본 TCP/UDP 성능을 확인하는 출발점이 됩니다.
  • 특정 Job 실행 전후로 iperf를 돌려 네트워크 병목이 하드웨어 문제인지, 소프트웨어 설정 문제인지 빠르게 구분할 수 있습니다.

 


 

ethtool – 네트워크 카드 상세 정보 확인

 

ethtool은 네트워크 인터페이스의 하드웨어 레벨 세부 정보를 보여주는 도구입니다. 링크 속도, 듀플렉스 모드, 오프로드 기능 등을 확인하거나 설정할 수 있습니다.

 

 

주요 활용법

# 링크 상태 확인
ethtool eth0

# NIC 드라이버 정보
ethtool -i eth0

# 오프로드 기능 확인
ethtool -k eth0

# 인터럽트 기반 통계 보기
ethtool -S eth0

 

출력 지표에서 중요한 부분

 

  • Speed: 링크 속도 (예: 1000Mb/s, 100Gb/s)
  • Duplex: Full/Half duplex 여부
  • Link detected: 물리적 연결 상태
  • Driver/firmware version: 드라이버 호환성 문제 파악에 필요

 

 

HPC 운영 포인트

 

  • GPU Job 실행 중 노드 하나가 지속적으로 느리다면, ethtool로 링크 속도가 낮게 잡혀 있거나 half-duplex로 설정된 문제일 수 있습니다.
  • 펌웨어 버전 불일치나 드라이버 버그도 HPC 네트워크 이슈의 단골 원인 중 하나입니다.

 


 

세 도구 비교

구분 ifstat iperf ethtool
관점 실시간 트래픽 모니터링 노드 간 전송 성능 측정 NIC 하드웨어 및 설정 확인
장점 가볍고 빠른 확인 가능 정량적 성능 수치 제공 링크 속도/드라이버 등 저수준 확인
한계 장기 기록 불가, 단순 트래픽 확인 벤치마크 성격, 실제 워크로드 반영 한계 실시간 트래픽 모니터링 불가
HPC 활용 예 병렬 Job 실행 시 트래픽 불균형 확인 InfiniBand 전송 성능 측정 NIC 드라이버 문제/펌웨어 불일치 진단

 


 

HPC 운영 실제 사례

 

  • NCCL 통신 병목: 다중 GPU 분산 학습에서 성능이 절반밖에 안 나왔습니다. ifstat으로 보니 특정 노드만 트래픽이 적게 잡혔고, ethtool 확인 결과 해당 노드 NIC 속도가 100Gbps 대신 10Gbps로 협상되어 있었습니다. NIC 재설정 후 정상 속도가 회복되었습니다.
  • 노드 간 네트워크 지연: iperf로 테스트했을 때 특정 노드 쌍에서만 지연시간이 높게 측정되었습니다. 스위치 포트의 QoS 설정 문제였음을 확인하고 교정했습니다.
  • 드라이버 버그 발견: ethtool에서 드라이버 버전 차이가 발견되어, 동일 버전으로 업데이트 후 클러스터 전체 성능이 안정화되었습니다.

 


 

모니터링 통합 전략

 

  • Prometheus + Node Exporter: ifstat, ethtool 통계 값을 exporter로 수집해 장기 모니터링 가능
  • Grafana 대시보드: Job 단위 네트워크 사용률, 클러스터 전체 대역폭 사용률을 시각화
  • 자동 알림: 특정 링크 속도가 기준치 이하로 떨어지면 Slack 알림 발송

 


 

정리하며

 

HPC/GPU 클러스터의 네트워크는 단순한 데이터 통로가 아니라, 성능의 핵심 축입니다.

 

  • ifstat실시간 트래픽 확인
  • iperf대역폭·지연 측정
  • ethtoolNIC 설정과 드라이버 상태 확인

 

이 세 가지를 조합하면, 네트워크 병목을 빠르게 찾아내고 HPC Job의 성능 저하를 예방할 수 있습니다.

 

 

728x90