반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

꿈꾸는 사람.

[Wi-Fi][Throughput] iperf 성능 측정. 본문

Communication/WLAN

[Wi-Fi][Throughput] iperf 성능 측정.

현무랑 니니 2015. 7. 14. 00:59
반응형


Wi-Fi 성능(Throughput) 측정 도구, iperf 설치와 사용법

1. 성능 (Throughput) 측정이란?

간단히 통신 구간의 데이터 처리량을 성능(throughput)이라 한다.

상세하게 표현하면 종단간 데이터 경로의 최소 전송 능력이 데이터를 보내는 최대치이다.

이 구간에 프로토콜의 효율과 호스트의 처리를 포함하여 최대로 확보할 수 있는 대여폭이 상세한 성능(throughput)이다.

성능(throughput)이 중요한 이유는 제공할 서비스가 가능한지를 판단할 기준이기 때문이다.

예를 들어 음성 통화 수준의 서비스를 제공하려면 PCM 방식을 제공할 경우 순수 데이터 전송 성능만 64Kbps이다.

음성 서비스를 제공하려면 물리매체가 64Kbps 이상의 대여폭을 제공하고 이를 처리할 host의 성능을 보장되어야 한다.

물론, 보코더를 적용하여 8Kbps, 14,4Kbps 만 할당하여도 충분하다.

동영상 서비스이 경우 필요한 대여폭이 음성보다 훨씬 커야 한다.


때문에 Wi-Fi의 성능을 측정하는 것이 중요하다.

2. iperf 설치

iperf 받기

Wi-Fi 성능을 측정하는 공식 도구는 이전에는 iperf였으나, Chariot으로 대체되었다.

iperf는 무료 도구에 공개 소프트웨어라 소스 코드까지 무료이다.

2.x 버전까지는 sourceforge에서 구할 수 있고 iperf3부터 구글 코드로 넘어 갔다.


1) 3.0 소스 받기

git clone https://github.com/esnet/iperf.git

~$ git clone https://github.com/esnet/iperf.git Cloning into 'iperf'... remote: Counting objects: 5016, done. remote: Total 5016 (delta 0), reused 0 (delta 0), pack-reused 5016 Receiving objects: 100% (5016/5016), 8.16 MiB | 664.00 KiB/s, done. Resolving deltas: 100% (3493/3493), done. Checking connectivity... done.

이전 2.0.5 버전과 호환되지 않는다.

2) 2.x 소스 받기
소스 포지 사이트에서 받기 : http://sourceforge.net/projects/iperf/

iperf  빌드와 설치

iperf/$ ./configure

iperf/$ make

iperf/$ make install


우분투용 iperf  패키지 설치

~/src$ sudo apt-get install iperf 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 다음 새 패키지를 설치할 것입니다: iperf 0개 업그레이드, 1개 새로 설치, 0개 제거 및 542개 업그레이드 안 함. 54.4 k바이트 아카이브를 받아야 합니다. 이 작업 후 169 k바이트의 디스크 공간을 더 사용하게 됩니다. 받기:1 http://kr.archive.ubuntu.com/ubuntu/ trusty/universe iperf i386 2.0.5-3 [54.4 kB] 내려받기 54.4 k바이트, 소요시간 0초 (119 k바이트/초) Selecting previously unselected package iperf. (데이터베이스 읽는중 ...현재 174220개의 파일과 디렉터리가 설치되어 있습니다.) Preparing to unpack .../iperf_2.0.5-3_i386.deb ... Unpacking iperf (2.0.5-3) ... Processing triggers for man-db (2.6.7.1-1) ... Processing triggers for doc-base (0.10.5) ... Processing 1 added doc-base file... iperf (2.0.5-3) 설정하는 중입니다 ...

우분투의 iperf 패키지는 2.0.5 버전이다.

최신 3.0 이후 버전은 아직 지원되지 않는다.


iperf 설치 확인

~/src$ whereis iperf iperf: /usr/bin/iperf /usr/bin/X11/iperf /usr/share/man/man1/iperf.1.gz

iperf 삭제

$ sudo test -d src/iperf-* && (cd src/iperf -*; make uninstall)

$ sudo rm -f /usr/bin/iperf /usr/bin/X11/iperf /usr/share/man/man1/iperf.1.gz


3. iperf 실행

종단간(end-to-end) 성능(throughput) 측정을 위해 두 노드 필요하고 하나는 서버로 나머지는 클라이언트로 동작해야 한다.

iperf의 데이터 전송은 클라이언트에서 데이터가 만들어지고 이것이 서버로 전달되고 서버는 측정 결과를 알려주고 받은 데이터는 폐기한다.


iperf를 server로 실행

~/src$ iperf -s -u -i1

------------------------------------------------------------ Server listening on UDP port 5001 Receiving 1470 byte datagrams UDP buffer size: 160 KByte (default) ------------------------------------------------------------ [ 3] local 10.0.2.15 port 5001 connected with 10.0.2.15 port 44571 [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0- 1.0 sec 11.7 MBytes 98.1 Mbits/sec 0.015 ms 0/ 8344 (0%) [ 3] 1.0- 2.0 sec 11.8 MBytes 99.3 Mbits/sec 0.009 ms 0/ 8441 (0%) [ 3] 2.0- 3.0 sec 11.9 MBytes 99.6 Mbits/sec 0.054 ms 0/ 8473 (0%) [ 3] 3.0- 4.0 sec 11.9 MBytes 99.7 Mbits/sec 0.011 ms 0/ 8482 (0%) [ 3] 4.0- 5.0 sec 11.9 MBytes 99.4 Mbits/sec 0.009 ms 0/ 8455 (0%) [ 3] 5.0- 6.0 sec 11.9 MBytes 99.6 Mbits/sec 0.065 ms 0/ 8466 (0%) [ 3] 6.0- 7.0 sec 11.9 MBytes 99.6 Mbits/sec 0.009 ms 0/ 8467 (0%) [ 3] 7.0- 8.0 sec 11.9 MBytes 99.7 Mbits/sec 0.009 ms 0/ 8475 (0%) [ 3] 8.0- 9.0 sec 11.8 MBytes 99.1 Mbits/sec 0.064 ms 0/ 8430 (0%) [ 3] 9.0-10.0 sec 11.8 MBytes 98.7 Mbits/sec 0.014 ms 0/ 8391 (0%) [ 3] 10.0-11.0 sec 11.9 MBytes 99.7 Mbits/sec 0.009 ms 0/ 8481 (0%) [ 3] 11.0-12.0 sec 11.9 MBytes 100 Mbits/sec 0.010 ms 0/ 8503 (0%) [ 3] 12.0-13.0 sec 11.9 MBytes 99.7 Mbits/sec 0.009 ms 0/ 8480 (0%) [ 3] 13.0-14.0 sec 11.9 MBytes 99.9 Mbits/sec 0.009 ms 0/ 8492 (0%) [ 3] 14.0-15.0 sec 11.9 MBytes 99.8 Mbits/sec 0.009 ms 0/ 8485 (0%) [ 3] 15.0-16.0 sec 11.9 MBytes 99.6 Mbits/sec 0.009 ms 0/ 8466 (0%) [ 3] 16.0-17.0 sec 11.8 MBytes 98.7 Mbits/sec 0.010 ms 0/ 8394 (0%) [ 3] 17.0-18.0 sec 11.8 MBytes 98.7 Mbits/sec 0.008 ms 0/ 8391 (0%) [ 3] 18.0-19.0 sec 10.7 MBytes 89.5 Mbits/sec 0.013 ms 0/ 7608 (0%) [ 3] 19.0-20.0 sec 11.6 MBytes 97.0 Mbits/sec 0.009 ms 0/ 8247 (0%) [ 3] 20.0-21.0 sec 11.8 MBytes 98.9 Mbits/sec 0.010 ms 0/ 8409 (0%) [ 3] 21.0-22.0 sec 11.4 MBytes 95.3 Mbits/sec 0.011 ms 0/ 8101 (0%) [ 3] 22.0-23.0 sec 11.8 MBytes 98.8 Mbits/sec 0.008 ms 0/ 8401 (0%) [ 3] 23.0-24.0 sec 11.8 MBytes 98.9 Mbits/sec 0.009 ms 0/ 8409 (0%) [ 3] 24.0-25.0 sec 11.9 MBytes 99.5 Mbits/sec 0.009 ms 0/ 8465 (0%) [ 3] 25.0-26.0 sec 11.8 MBytes 98.7 Mbits/sec 0.009 ms 0/ 8392 (0%) [ 3] 26.0-27.0 sec 11.8 MBytes 99.0 Mbits/sec 0.010 ms 0/ 8422 (0%) [ 3] 27.0-28.0 sec 11.8 MBytes 99.2 Mbits/sec 0.010 ms 0/ 8435 (0%) [ 3] 28.0-29.0 sec 11.8 MBytes 99.2 Mbits/sec 0.009 ms 0/ 8437 (0%) [ 3] 0.0-30.0 sec 353 MBytes 98.7 Mbits/sec 0.010 ms 0/251800 (0%) [ 3] 0.0-30.0 sec 1 datagrams received out-of-order

-s: 서버로 동작하게 하는 옵션

-u: UDP 프로토콜로 설정. 기본은 TCP이다.

-i: 1초 간격으로 측정 결과 표시.


iperf를 client로 실행

~/iperf$ iperf -c 192.168.2.15 -u -b100M -i1 -t 30

------------------------------------------------------------ Client connecting to 10.0.2.15, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 160 KByte (default) ------------------------------------------------------------ [ 3] local 10.0.2.15 port 44571 connected with 10.0.2.15 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0- 1.0 sec 11.7 MBytes 98.0 Mbits/sec [ 3] 1.0- 2.0 sec 11.8 MBytes 99.3 Mbits/sec [ 3] 2.0- 3.0 sec 11.9 MBytes 99.7 Mbits/sec [ 3] 3.0- 4.0 sec 11.9 MBytes 99.7 Mbits/sec [ 3] 4.0- 5.0 sec 11.9 MBytes 99.4 Mbits/sec [ 3] 5.0- 6.0 sec 11.9 MBytes 99.6 Mbits/sec [ 3] 6.0- 7.0 sec 11.9 MBytes 99.6 Mbits/sec [ 3] 7.0- 8.0 sec 11.9 MBytes 99.7 Mbits/sec [ 3] 8.0- 9.0 sec 11.8 MBytes 99.2 Mbits/sec [ 3] 9.0-10.0 sec 11.8 MBytes 98.6 Mbits/sec [ 3] 10.0-11.0 sec 11.9 MBytes 99.7 Mbits/sec [ 3] 11.0-12.0 sec 11.9 MBytes 100 Mbits/sec [ 3] 12.0-13.0 sec 11.9 MBytes 99.7 Mbits/sec [ 3] 13.0-14.0 sec 11.9 MBytes 99.9 Mbits/sec [ 3] 14.0-15.0 sec 11.9 MBytes 99.8 Mbits/sec [ 3] 15.0-16.0 sec 11.9 MBytes 99.6 Mbits/sec [ 3] 16.0-17.0 sec 11.8 MBytes 98.7 Mbits/sec [ 3] 17.0-18.0 sec 11.8 MBytes 98.7 Mbits/sec [ 3] 18.0-19.0 sec 10.7 MBytes 89.6 Mbits/sec [ 3] 19.0-20.0 sec 11.5 MBytes 96.9 Mbits/sec [ 3] 20.0-21.0 sec 11.8 MBytes 98.9 Mbits/sec [ 3] 21.0-22.0 sec 11.4 MBytes 95.3 Mbits/sec [ 3] 22.0-23.0 sec 11.8 MBytes 98.8 Mbits/sec [ 3] 23.0-24.0 sec 11.8 MBytes 98.9 Mbits/sec [ 3] 24.0-25.0 sec 11.9 MBytes 99.5 Mbits/sec [ 3] 25.0-26.0 sec 11.8 MBytes 98.7 Mbits/sec [ 3] 26.0-27.0 sec 11.8 MBytes 99.0 Mbits/sec [ 3] 27.0-28.0 sec 11.8 MBytes 99.2 Mbits/sec [ 3] 28.0-29.0 sec 11.8 MBytes 99.2 Mbits/sec [ 3] 29.0-30.0 sec 11.7 MBytes 98.4 Mbits/sec [ 3] 0.0-30.0 sec 353 MBytes 98.7 Mbits/sec [ 3] Sent 251801 datagrams [ 3] Server Report: [ 3] 0.0-30.0 sec 353 MBytes 98.7 Mbits/sec 0.010 ms 0/251800 (0%) [ 3] 0.0-30.0 sec 1 datagrams received out-of-order


-> Throuput: 98.7Mbps

-c: 클라이언트로 동작

-b: UDP 프로토콜일 때 대여폭을 지정. (기본은 1Mbps)

-p: 포트 번호 (기본은 5001)

-t: 측정 시간 (기본은 10초)


즉, 서버에 접속해서 100M 대여폭으로 UDP 프로토콜을 이용하여 30초간 무선 구간의 성능을 측정하는 것이다.


반응형
Comments