본문 바로가기

자료실

네트워크 처리량 측정 - iPerf3 명령어 옵션 정리

 

iPerf - Download iPerf3 and original iPerf pre-compiled binaries

iPerf - The ultimate speed test tool for TCP, UDP and SCTPTest the limits of your network + Internet neutrality test Table of contents : Download iPerf for Windows Download iPerf3 for Android Download iPerf3 for iPhone / iPad Download iPerf3 for Apple macO

iperf.fr

 

Server - Client 간 네트워크 처리량을 측정하는데 사용되는 툴입니다. 여러 옵션들로 TCP/UDP 모두 테스트 가능하며 다양한 환경을 상정하여 테스트가 가능합니다. 

 

iPerf3 는 CLI 전용 툴이며 Windows 운영체제에서는 CMD 에서 따로 실행시켜주어야 할 필요가 있습니다. 같은 계열로 GUI 기반의 Netperf 또한 있으나 본문에서는 따로 설명하지 않습니다. 

 

 

Windows 사용법

Windows 운영체제 기반에서는 위 링크에서 운영체제에 맞는 파일을 다운로드 하시고, 접근하기 쉬운 폴더에 실행파일을 두신 다음, 직접 실행하지 않고 CMD 에서 실행시켜주어야 합니다. 

 

C드라이브 안에 iperf3.exe 파일을 두셨다면, 관리자 권한으로 실행한 CMD 에서 해당 경로를 찾아가서 iperf3 를 입력해야 실행이 가능합니다. 또한 반드시 서버측과 클라이언트측이 모두 실행되어야하며, 포트를 바꾸지 않는다면 양쪽의 포트가 모두 열려 있어야 테스트 가능합니다. 기본 포트 설정은 5201 입니다.

 

 

 

Linux 설치법

// Cent OS
sudo yum install iperf3 -y

// Ubuntu
sudo apt-get install iperf3 -y

 

 

iPerf3 옵션

C:\>iperf3
iperf3: parameter error - must either be a client (-c) or server (-s)

Usage: iperf [-s|-c host] [options]
       iperf [-h|--help] [-v|--version]

Server or Client:
  -p, --port      #         서버포트 또는 connect 포트 설정 (Default 5201)
  -f, --format    [kmgKMG]  출력하려는 포맷 지정: Kbits, Mbits, KBytes, MBytes
  -i, --interval  #         n초마다 결과 출력 (Default 1초)
  -F, --file name           특정 파일을 전송
  -B, --bind      <host>    특정 인터페이스를 바인딩
  -V, --verbose             더 자세한 로그의 출력
  -J, --json                JSON 포맷으로 결과 출력
  --logfile f               로그 파일을 출력
  -d, --debug               디버깅 정보 출력
  -v, --version             버전 정보 출력
  -h, --help                사용법 출력
Server specific:
  -s, --server              서버 모드로 실행
  -D, --daemon              데몬 모드로 실행
  -I, --pidfile file        PID 파일을 write
  -1, --one-off             클라이언트가 한번 접속하고 처리한 후 서버 종료
Client specific:
  -c, --client    <host>    클라이언트 모드로 실행
  -u, --udp                 UDP 사용
  -b, --bandwidth #[KMG][/#] 대역폭을 n bits/sec 로 설정 (0 for unlimited)
                            (default 1 Mbit/sec for UDP, unlimited for TCP)
                            (optional slash and packet count for burst mode)
  -t, --time      #         전송 시간 설정 (default 10 secs)
  -n, --bytes     #[KMG]    전송할 byte 설정 (instead of -t)
  -k, --blockcount #[KMG]   전송할 블록 (packets) 설정 (instead of -t or -n)
  -l, --len       #[KMG]    버퍼를 읽고 쓰는 크기를 설정
                            (default 128 KB for TCP, 8 KB for UDP)
  --cport         <port>    특정 클라이언트 포트를 바인딩 (TCP and UDP, default: ephemeral port)
  -P, --parallel  #         몇개의 커넥션을 연결할지 설정
  -R, --reverse             리버스 모드로 동작 (server sends, client receives)
  -w, --window    #[KMG]    윈도우 사이즈, 소켓 버퍼 사이즈 설정 (서버와 동기화)
  -M, --set-mss   #         set TCP/SCTP maximum segment size (MTU - 40 bytes)
  -N, --no-delay            set TCP/SCTP no delay, disabling Nagle's Algorithm
  -4, --version4            only use IPv4
  -6, --version6            only use IPv6
  -S, --tos N               IP 서비스 타입을 설정
  -Z, --zerocopy            데이터 전송에 제로카피 방식을 사용
  -O, --omit N              최초 N초를 생략
  -T, --title str           문자열로 모든 라인을 출력
  --get-server-output       서버에서 결과를 출력
  --udp-counters-64bit      UDP 테스트 패킷에서 64비트 카운터를 사용

[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-

iperf3 homepage at: http://software.es.net/iperf/
Report bugs to:     https://github.com/esnet/iperf