iperf3 튜토리얼: Linux 및 Windows에서 네트워크 속도 테스트하기

10분 소요 - 2026년 5월 7일

hero section cover
목차
  • iperf3 튜토리얼: Linux 및 Windows에서 네트워크 성능 측정하기
  • Iperf3 설치하기
  • 서버 설정하기
  • 클라이언트 테스트 실행
  • 고급 테스트
  • 튜닝 및 문제 해결
  • 비디오 추천
공유

Linux와 Windows에서 정확한 결과를 얻기 위해 iperf3를 설치하고, 대역폭 테스트를 실행하고, TCP 버퍼를 조정합니다. UDP, 양방향 및 10GbE+ 테스트를 다룹니다

iperf3 튜토리얼: Linux 및 Windows에서 네트워크 성능 측정하기

iperf3는 두 컴퓨터 간의 네트워크 대역폭, 지터 및 패킷 손실을 측정하기 위한 명령줄 도구입니다. 클라이언트-서버 모델을 사용하여 한 컴퓨터가 수신하고 다른 컴퓨터가 트래픽을 전송하면 정확한 처리량 수치를 얻을 수 있습니다. 이 가이드에서는 설치, 기본 및 고급 테스트, 고속 링크에서 정확한 결과를 얻기 위해 시스템을 튜닝하는 방법을 다룹니다.

Iperf3 설치하기

데비안 / 우분투

sudo apt update
sudo apt install iperf3

Iperf3 -- 버전으로 설치를 확인합니다. 서버와 클라이언트 시스템 모두에 설치합니다.

Fedora / CentOS / Rocky / Alma

Fedora 22+ 또는 CentOS 8+, Rocky 또는 AlmaLinux에서:

sudo dnf install iperf3

CentOS 7에서는 대신 yum을 사용합니다. 패키지를 찾을 수 없는 경우 먼저 EPEL 리포지토리를 활성화하세요:

sudo yum install epel-release
sudo yum install iperf3

방화벽이 활성화되어 있으면 포트 5201을 엽니다:

sudo firewall-cmd --add-port=5201/tcp --permanent
sudo firewall-cmd --reload

Windows

Iperf.fr 또는 ar51an/iperf3-win-builds GitHub 리포지토리에서 독립 실행형 실행 파일을 다운로드합니다. C:\iperf3와 같은 폴더에 압축을 푼 다음 확인합니다:

cd C:\iperf3
iperf3.exe -v

어느 디렉토리에서든 iperf3를 실행하려면 시스템 속성 > 고급 > 환경 변수를 통해 시스템 경로에 폴더를 추가하세요. 또한 Windows Defender 방화벽에서 포트 5201에서 TCP를 허용하는 인바운드 방화벽 규칙을 만들어야 합니다.

서버 설정하기

서버를 시작합니다:

iperf3 -s

기본적으로 TCP 포트 5201에서 수신 대기합니다. 로깅과 함께 백그라운드에서 실행합니다:

iperf3 -s -D --logfile /var/log/iperf3.log

Ss -tulpn | grep 5201으로 실행 중인지 확인합니다.

네트워크에서 5201 포트가 차단된 경우 -p를 사용하여 다른 포트를 선택하세요. 특정 인터페이스에 바인딩하려면 -B를 사용합니다:

iperf3 -s -B 192.168.1.10

일회성 테스트의 경우, iperf3 -s -1은 단일 클라이언트 연결을 처리한 다음 종료합니다. 고대역폭 링크(40Gbps 이상)에서는 서로 다른 포트에서 여러 서버 인스턴스를 실행하여 단일 스레드 CPU 제한을 해결하세요.

방화벽이 선택한 포트의 트래픽을 허용하는지 확인하세요. 우분투/데비안에서 UFW를 사용하는 경우:

sudo ufw allow 5201/tcp
sudo ufw allow 5201/udp   # if testing UDP

클라이언트 테스트 실행

기본 TCP 테스트

iperf3 -c 192.168.1.10

이 테스트는 10초 동안 TCP를 통한 업로드 대역폭을 측정합니다. T로 기간을 연장할 수 있습니다:

iperf3 -c 192.168.1.10 -t 30

10Gbps 또는 25Gbps 링크에서 단일 TCP 스트림은 단일 코어 CPU 제한으로 인해 3~5Gbps에서 최고치를 기록하는 경우가 많습니다. 병렬 스트림을 사용하여 링크를 포화시키세요:

iperf3 -c 192.168.1.10 -P 8

결과 읽기

각 간격 선에는 전송 (전송된 데이터) 및 비트 전송률 (처리량)이 표시됩니다. TCP의 경우

  • Retr (재전송)도 보세요. 수치가 높을수록 패킷 손실 또는 정체를 의미합니다.
  • Cwnd (혼잡 시간). 수치가 낮거나 정체되면 버퍼 또는 창 크기 제한으로 인해 처리량이 제한되고 있는 것입니다.

깨끗한 1Gbps 링크에서는 프로토콜 오버헤드 후 약 940Mbps가 예상됩니다. 테스트는 발신자 및 수신자 요약 라인으로 끝납니다. 안정적인 네트워크에서는 이 값이 거의 일치해야 합니다.

UDP 테스트(-u 플래그)의 경우, 출력에 지터(패킷 도착 편차)와 손실/총 데이터그램이 추가됩니다. 1ms 미만의 지터와 0% 손실은 VoIP와 같은 실시간 트래픽에 이상적입니다.

유용한 플래그

플래그목적
-c <IP>서버에 연결
-p <포트특정 포트 사용(기본값: 5201)
-t <초>테스트 기간(초)(기본값: 10)
-i <초>보고 간격
-P <숫자병렬 스트림
-uUDP 모드
-b <n>M목표 대역폭(UDP, 생략 시 기본값은 1Mbps)
-R역방향 모드(서버 송신, 클라이언트 수신)
-w <n>KTCP 윈도우/소켓 버퍼 크기
-JJSON 출력
-Z제로 복사(빠른 링크에서 CPU 감소)

고급 테스트

양방향 테스트

Bidir 플래그(iperf3 3.7+)는 업로드와 다운로드를 동시에 테스트합니다:

iperf3 -c 192.168.1.10 --bidir

두 연결 모두 클라이언트에서 시작되므로 추가 포트를 열지 않고 NAT를 통해 작동합니다. 양방향 결과가 단방향 테스트보다 훨씬 낮다면 라우터 또는 케이블 모뎀이 전이중 트래픽으로 인해 어려움을 겪고 있는 것일 수 있습니다.

역방향 모드

R 플래그는 데이터 흐름을 뒤집어 서버가 전송하고 클라이언트가 수신하도록 합니다. 이 모드는 역할을 바꾸지 않고 다운로드 속도를 측정합니다:

iperf3 -c 192.168.1.10 -t 30 -i 5 -R

정방향과 역방향 결과의 차이가 크면 비대칭 경로, 정체 또는 버퍼 구성이 잘못되었음을 나타냅니다.

UDP 테스트

UDP 테스트는 TCP가 재전송 뒤에 숨어 있는 지터와 패킷 손실을 보여줍니다. Iperf3의 기본값은 UDP의 경우 1Mbps이므로 항상 -b를 사용하여 목표 대역폭을 설정하세요:

iperf3 -c 192.168.1.10 -u -b 1G

VoIP 트래픽(100회 통화, 200바이트 패킷)을 시뮬레이션합니다:

iperf3 -c 192.168.1.10 -u -b 8M -l 200

품질 벤치마크: 5ms 미만의 지터는 VoIP에 적합하며, 30ms 이상은 가청 문제를 일으킵니다. 패킷 손실이 0.1%를 초과하면 실시간 미디어 품질이 눈에 띄게 저하됩니다.

튜닝 및 문제 해결

일반적인 문제

기가비트 링크에서 100Mbps만 나오나요? Ethtool eth0으로 물리적 인터페이스 속도를 확인하세요. 자동 협상이 실패하여 링크가 더 낮은 속도로 떨어질 때가 있습니다.

이더넷에서 MSS가 536바이트를 표시하나요? 경로 MTU 검색이 비활성화되어 있을 수 있습니다. 1,500바이트 MTU의 기본 MSS는 1,460바이트입니다. 테스트 중에 -m을 사용하여 확인하세요. 536바이트 MSS는 대역폭을 낭비하고 오버헤드를 추가합니다.

빠른 링크에서 CPU가 최대로 사용되나요? Z (제로 카피)를 사용하여 CPU 부하를 줄이세요. 40Gbps 이상의 경우 여러 서버 인스턴스를 서로 다른 포트에서 실행하여 CPU 코어에 분산하세요.

결과가 일관되지 않나요? -O 3을 사용하여 TCP 혼잡 창이 증가하는 동안 처음 몇 초를 생략하세요. 테스트 실행 사이에 30초의 간격을 두고 네트워크 버퍼를 지우세요.

병렬 스트림을 합친 것보다 단일 스트림이 훨씬 느린가요? 하나의 스트림이 200Mbps인데 8개의 스트림을 합쳐서 1.6Gbps에 도달하면 TCP 창 또는 OS 버퍼가 단일 스트림을 제한하고 있는 것입니다. 아래에서 버퍼를 조정하세요.

TCP 버퍼 튜닝

먼저 대역폭-지연 곱( 대역폭 x RTT)을 계산합니다. 50ms RTT의 10Gbps 링크는 62.5MB의 BDP를 제공합니다. 최대 버퍼를 BDP의 2배 이상으로 설정하세요.

이를 /etc/sysctl.d/99-tcp-tuning.conf에 추가하고 sudo sysctl -p로 적용합니다:

파라미터권장(1~10Gbps)
net.core.rmem_max134217728 (128MB)
net.core.wmem_max134217728 (128MB)
net.ipv4.tcp_rmem4096 131072 134217728
net.ipv4.tcp_wmem4096 131072 134217728
net.core.default_qdiscfq
net.ipv4.tcp_congestion_controlbbr

커널이 이 범위 내에서 자동 조정되도록 net.ipv4.tcp_moderate_rcvbuf를 1로 설정합니다. 64KB보다 큰 TCP 창에 대해 net.ipv4.tcp_window_scaling (1로 설정)을 활성화합니다.

기본 CUBIC 혼잡 알고리즘에서 Google의 BBR로 전환할 수도 있습니다. 약간의 패킷 손실이 있는 지연 시간이 긴 링크에서 BBR은 CUBIC보다 일관되게 더 높은 처리량을 제공합니다.

특정 버퍼 크기를 테스트하려면 iperf3에서 -w 플래그를 사용하되, 커널의 rmem_max 또는 wmem_max를 초과할 수 없다는 점에 유의하세요. 기가비트 링크의 경우 8MB, 100Mbps의 경우 512KB부터 시작합니다.

전용 서버를 프로비저닝하고 네트워크 성능을 검증하려는 경우 설정 직후와 네트워크 변경 후에 iperf3 기준 테스트를 실행하여 회귀를 조기에 포착하세요.

비디오 추천

블로그

이번 주 추천

더 많은 기사
iperf3 튜토리얼: Linux 및 Windows에서 네트워크 속도 테스트하기

iperf3 튜토리얼: Linux 및 Windows에서 네트워크 속도 테스트하기

Linux와 Windows에서 정확한 결과를 얻기 위해 iperf3를 설치하고, 대역폭 테스트를 실행하고, TCP 버퍼를 조정합니다. UDP, 양방향 및 10GbE+ 테스트를 다룹니다

10분 소요 - 2026년 5월 7일

ZFS 스냅샷: 스냅샷 생성, 복원 및 자동화 방법

10분 소요 - 2026년 5월 5일

더 많은 기사
background image

질문이 있거나 맞춤형 솔루션이 필요하신가요?

icon

유연한 옵션

icon

글로벌 도달 범위

icon

즉시 배포

icon

유연한 옵션

icon

글로벌 도달 범위

icon

즉시 배포