"전송이 느리다"는 보고를 받으면, 그게 회선 대역폭의 한계인지 애플리케이션·디스크 문제인지부터 갈라야 합니다. ping은 지연(latency)만 보여줄 뿐 처리량(throughput)을 모릅니다. iperf3는 두 서버 사이에 인위적 트래픽을 흘려 실제 대역폭을 숫자로 줍니다.
증상 — ping은 멀쩡한데 느리다
지연이 낮아도 대역폭이 부족하면 큰 파일 전송은 느립니다. 반대로 대역폭이 충분한데 느리다면 디스크 I/O나 애플리케이션 병목입니다. iperf3로 회선만 따로 떼어 측정해 이 둘을 분리합니다.
진단 — 서버·클라이언트 띄우기
iperf3는 한쪽을 서버(수신), 다른 쪽을 클라이언트(송신)로 두고 측정합니다.
- 수신 측(측정 대상 서버)에서 서버 모드
로컬 터미널
iperf3 -s
- 송신 측에서 서버로 트래픽 전송
로컬 터미널
iperf3 -c 192.168.1.10
기본은 TCP 10초 전송이며, 결과로 구간별·합계 Bitrate가 나옵니다.
OUTPUT
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.10 GBytes 942 Mbits/sec sender
[ 5] 0.00-10.00 sec 1.09 GBytes 938 Mbits/sec receiver
receiver 줄의 Bitrate가 실제 수신 처리량입니다. 1Gbps 회선이라면 942Mbps 정도가 정상 상한입니다.
상황별 옵션
| 목적 | 옵션 | 의미 |
|---|---|---|
| 역방향 측정 | iperf3 -c 호스트 -R | 서버에서 클라이언트로 전송 |
| 병렬 스트림 | iperf3 -c 호스트 -P 4 | 단일 스트림 한계 우회 |
| UDP·손실 측정 | iperf3 -c 호스트 -u -b 100M | 지정 속도로 패킷손실·지터 확인 |
| 측정 시간 연장 | iperf3 -c 호스트 -t 30 | 30초 측정 |
단일 TCP 스트림이 회선을 못 채우면 -P로 병렬 전송을 올려 봅니다. 회선은 빠른데 한 스트림이 느리면 윈도우·지연 곱(BDP) 한계일 수 있습니다. UDP(-u)는 손실률과 지터까지 보여 줘 품질 진단에 유용합니다.
측정 체크리스트
로컬 터미널
iperf3 -s # 수신 측: 서버 모드(포트 5201 기본)
iperf3 -c 호스트 # 송신 측: 기본 TCP 측정
iperf3 -c 호스트 -R # 반대 방향도 측정(비대칭 회선 확인)
iperf3 -c 호스트 -P 4 # 병렬로 회선 상한 확인
iperf3 -c 호스트 -u -b 200M # UDP로 손실·지터 확인
방화벽이 5201 포트를 막으면 연결이 안 되니, 측정 전 서버 측에서 해당 포트가 열려 있는지 확인합니다. 양방향(-R 포함)을 모두 재 두면 비대칭 회선이나 한쪽만 느린 경로를 잡아낼 수 있습니다.
iperf3로 대역폭을 직접 재고 ping·트레이스와 묶어 병목을 가르는 실습은 네트워크 트랙에서 회원가입 없이 무료로 해볼 수 있습니다.