0

네트워크 성능 테스트, iperf (iperf3)

iperf 는 TCP/UDP 트래픽을 발생시켜 네트워크 성능을 측정하는 도구로 NLANR/DAST에서 개발되었다. 오픈소스로 개발되어 github 에서 소스코드를 내려받을 수 있고 Windows / Linux 등 다양한 플랫폼을 지원하고 있다. command line 로 사용하는것에 불편한 사용자를 위한 jperf 가 개발된 상태이나, iperf 가 3 까지 업그레이드 되는동안 2 을 기반으로 개발되어 더이상 진척이 없는 만큼 iperf 를 사용하는 것을 추천한다. iperf 는 2대 PC 사이의 구간 테스트로, 각각의 PC 가 Server / Client 로 동작해야 하며, 테스트 환경의 컴퓨터가 제 성능을 발휘하지 못한다면 최대 네트워크 대역폭을 얻어내지 못할 수 있다.

1. iperf 받기

iperf 는 3 버전까지 공개 되었으며 다음 URL 에서 자신의 환경에 맞는 컴파일된(실행) 파일을 받을 수 있다. 참고로 별도의 설치파일은 제공하지 않는다.

 

2. 서버 구축

테스트 환경을 만들기 위한 서버가 필요하다. 방법은 두가지다.

A. iperf 에서 제공하는 Public Server를 사용하는 방법

다음 URL 을 방문하면 Public Server를 사용할 수 있다. 안타깝게도 한국 / 아시아 기반 서버는 없기 때문에 정상적인 테스트는 불가능하다. (국제망 및 ISP 성능에 따른 영향을 미치기 때문)

  • URL : https://iperf.fr/iperf-servers.php

B. iperf 를 통해 서버 환경을 만드는 방법

일반적으로 많이 사용되는 방법이다. 방법은 매우 간단하다. 아래의 커맨드를 입력하자.

별도로 지정하지 않는다면 TCP 5201 포트를 사용하게 된다. 포트를 바꾸고 싶다면 -p 옵션을 사용하자.

당연히 방화벽에서 허용해야지 사용 가능하다.

3. 테스트 개시

클라이언트에서 테스트 하는 방식은 매우 간단하다. 몇가지 옵션만 기억하면 된다.

-c IP : client 모드 동작, 서버 IP 지정
-p XX : PORT 지정 (서버가 8090 에서 동작한다면 8090 을 입력한다)
-w XX : 윈도우 환경에서의 TCP 소켓 버퍼 사이즈를 지정한다
-f XX : 결과 단위를 보여준다. “m” 을 사용하면 Mbits/sec 로 단위가 환산된다.
-t XX : 테스트 전체 시간(초단위). 100 을 입력하면 100 초 동안 테스트한다.
-i XX : 테스트 인터벌(초단위). 10을 입력하면 10초단위로 쪼개 테스트한다.

커맨드 조합 후 실행함으로서 결과를 얻을 수 있다.

옵션을 조금 더 찾아보면 결과물을 JSON 등의 포멧으로 받을 수도 있다.

4. 결과

CLIENT 에서 보이는 결과는 10초 간격의 인터벌, 단위는 Mbit 인 것을 확인할 수 있다.

반면 서버는 초단위로 계산되어 출력된 모습을 확인할 수 있다.

 

Linux 등 다양한 환경을 사용할 수 있는 만큼, IDC(Cloud) 와의 네트워크 성능 테스트에서도 매우 유용한 것은 사실.

Leave a Reply

Your email address will not be published. Required fields are marked *