본문 바로가기
개발도구

네트워크 성능 및 대역폭 측정 도구 iperf3

by eteo 2024. 3. 10.
반응형

 

 

iperf3

 

iperf3은 두 호스트 간의 네트워크 처리량(throughput) 테스트를 수행할 수 있는 무료 명령줄 도구이다. 서버와 클라이언트 모드를 제공하며 TCP 또는 UDP 프로토콜로 테스트가 가능하다.

 

 

 

 

1. 시험 대상과 테스트를 진행할  PC 둘 다 iperf3을 설치한다.

 

윈도우 : https://iperf.fr/iperf-download.php

리눅스 : sudo apt install iperf3

 

iperf3은 플랫폼 독립적인 도구로 시험 대상과 테스트 PC의 OS나 아키텍처가 달라도 문제없이 동작한다.

단, 한 쪽의 네트워크 인터페이스가 지원하는 속도가 낮으면, 자동 협상에 의해 전체 링크가 그 속도 맞춰 낮아지므로 테스트 PC 선정 시 주의한다.

 

 

 

 

2. 테스트 결과에 영향을 미칠만한 네트워크 트래픽을 유발하지 않은 상태로 테스트를 진행한다.

 

 

 

 

 

3. 서버에서 다음을 수행한다.

iperf -s

 

 

 

 

4. 클라이언트에서 다음을 수행한다.

iperf -c <서버IP>

 

 

 

 

 

사용 예시.

C:\Users\jo\Downloads\iperf-3.1.3-win64\iperf-3.1.3-win64>iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

 

 

 

C:\Users\jo\Downloads\iperf-3.1.3-win64\iperf-3.1.3-win64>iperf3 -c 127.0.0.1
Connecting to host 127.0.0.1, port 5201
[  4] local 127.0.0.1 port 12749 connected to 127.0.0.1 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  1017 MBytes  8.53 Gbits/sec
[  4]   1.00-2.00   sec   761 MBytes  6.37 Gbits/sec
[  4]   2.00-3.00   sec   842 MBytes  7.06 Gbits/sec
[  4]   3.00-4.00   sec   788 MBytes  6.61 Gbits/sec
[  4]   4.00-5.00   sec   686 MBytes  5.76 Gbits/sec
[  4]   5.00-6.00   sec   571 MBytes  4.79 Gbits/sec
[  4]   6.00-7.00   sec   646 MBytes  5.42 Gbits/sec
[  4]   7.00-8.01   sec   337 MBytes  2.81 Gbits/sec
[  4]   8.01-9.01   sec   568 MBytes  4.76 Gbits/sec
[  4]   9.01-10.01  sec   378 MBytes  3.18 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.01  sec  6.44 GBytes  5.53 Gbits/sec                  sender
[  4]   0.00-10.01  sec  6.44 GBytes  5.53 Gbits/sec                  receiver

iperf Done.

 

위 예시는 동일 PC에서 127.0.0.1로 루프백 테스트를 한 케이스이며, Bandwidth가 5Gbps까지 나온 모습이다.

 

 

 

 

 

프로토콜(TCP/UDP)에 따른 RX/TX 성능 시험 방법

 

일반적으로 시험 대상인 타겟에서 서버를 돌려놓고 테스트 PC에서 아래 명령을 수행하면 송수신 방향과 프로토콜(TCP/UDP)에 따른 네트워크 성능을 알 수 있다.

 

테스트 명령어
TCP RX iperf3 -c <Target IP>
TCP TX iperf3 -c <Target IP> -R
UDP RX (1Gbps 링크인 경우) iperf3 -c <Target IP> -u -b 1g
UDP TX (1Gbps 링크인 경우) iperf3 -c <Target IP> -u -b 1g -R
  • Default : 아무런 옵션이 없으면 클라이언트가 서버로 데이터를 전송하며, TCP 모드로 동작한다.
  • -R : 서버가 클라이언트로 데이터를 전송한다.
  • -u : UDP 모드로 테스트를 수행한다.
  • -b #[kmgKMG] : UDP 모드에서만 사용하며, 대역폭을 지정해 얼마나 빠르게 데이터를 전송할지 명시한다. -b 1g는 Bandwidth를 1Gbps로 설정한다는 뜻이다.

 

 

 

 

 

❓️ 왜 UDP 모드로 테스트를 할 땐 -b 100m, -b 1g, -b 10g 등으로 대역폭을 지정해주어야 하나?

TCP 모드에선 전송 속도를 수동으로 지정하지 않고 흐름 제어, 혼잡 제어, 윈도우 크기 등에 따라 네트워크와 시스템이 허용하는 만큼 가능한 빠른 속도로 전송한다.

반면, UDP는 TCP와 달리 흐름 제어나 혼잡 제어가 없으므로 자동으로 속도를 조절하지 않고, 명시적으로 전송 속도를 정해주지 않으면 기본값(1Mbps)로 테스트가 진행되어 제대로 된 성능 측정이 어렵다. 일반적으로는 해당 네트워크의 최대 처리 용량을 설정하여 테스트를 진행한다.

 

 

 

 

 

기타 윈도우에서 사용할 수 있는 대역폭 측정 툴로 ipTime Bench도 추천한다.

 

사용방법 및 프로그램 다운로드 링크 :

 

https://iptime.com/iptime/?page_id=126&pageid=1&mod=document&keyword=bench&uid=18942

 

EFM, ipTIME 아이피타임

이지메시, 이지메쉬, 메시와이파이, 기가 와이파이, 유무선 및 무선 인터넷 공유기, 와이파이 증폭기 및 확장기, 기업 및 가정용 나스, NAS STORAGE 등 제품소개와 펌웨어 다운로드 고객지원 제공

iptime.com

 

 

반응형