sudo dnf install -y iperf3
sudo apt install -y iperf3
iperf 2 와 iperf3 는 프로토콜이 달라 서로 통신하지 않는다. 양쪽 끝에 같은 계열을 설치한다. 버전 차이로 옵션 동작이 달라지므로 iperf3 --version 도 맞춰 두는 편이 좋다.
한쪽을 서버로 띄운다. 기본 포트는 5201/tcp 다.
iperf3 -s
iperf3 -s -p 5201 -D
반대쪽에서 클라이언트로 붙는다.
iperf3 -c 192.168.1.10
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.10 GBytes 943 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec receiver
방화벽에서 5201/tcp 를 열어야 한다. UDP 시험을 할 것이면 5201/udp 도 함께 연다.
| 옵션 | 뜻 |
|---|---|
-t 30 |
측정 시간(초). 기본 10초 |
-P 8 |
병렬 스트림 수. 단일 스트림으로 회선을 채우지 못할 때 |
-R |
방향을 뒤집어 서버 → 클라이언트로 측정 |
--bidir |
양방향 동시 측정 (iperf3 3.7 이상) |
-u -b 100M |
UDP 로 지정 대역을 쏜다. 지터와 손실률을 본다 |
-i 1 |
1초 간격으로 중간 결과 출력 |
-J |
JSON 출력. 스크립트로 파싱할 때 |
iperf3 의 -d 는 양방향이 아니라 디버그 출력이다. 양방향은 --bidir 이고, 지원하지 않는 구버전이라면 -R 로 방향을 나눠 두 번 측정한다.
iperf3 -c 192.168.1.10 -t 30 -P 8 -i 1
iperf3 -c 192.168.1.10 -R -t 30
iperf3 -c 192.168.1.10 -u -b 500M -t 30
TCP 측정에서 Retr(재전송) 이 늘고 있으면 회선이 아니라 손실이나 혼잡이 문제다. 지연이 큰 경로에서 단일 스트림이 회선을 못 채우는 것은 정상이며, 이때는 -P 로 스트림을 늘려 회선 자체의 한계를 본다. 실제 응용의 처리량을 보고 싶으면 스트림을 늘리지 않은 값이 더 가깝다.
UDP 측정에서는 지정한 -b 를 실제로 보냈는지, 수신 쪽의 Lost/Total 비율과 Jitter 가 얼마인지를 본다. 손실이 0이면 대역을 더 올려 한계를 찾는다.
측정 중에 양쪽의 CPU 를 함께 본다. 10G 이상에서는 단일 코어가 먼저 한계에 닿아 회선이 아니라 CPU 를 재고 있는 경우가 흔하다.