Computer >> 컴퓨터 >  >> 시스템 >> Windows 10

iPerf를 활용한 네트워크 속도 및 대역폭(처리량) 테스트 방법

iPerf는 두 네트워크 노드 간의 대역폭을 테스트하기 위해 만들어진 오픈소스 도구입니다. iPerf를 사용하면 두 호스트 사이에서 TCP 및 UDP 트래픽(부하)을 생성할 수 있으며, 서버와 클라이언트 간 최대 네트워크 대역폭(처리량)을 빠르게 측정하거나, ISP 통신 회선·라우터·네트워크 게이트웨이(방화벽)·유선 이더넷 또는 Wi-Fi 네트워크의 스트레스 테스트를 수행하는 데 활용할 수 있습니다.

이 글에서는 WindowsLinux CentOS 환경에서 iPerf를 설치하고 사용하여 네트워크 처리량을 확인하는 방법을 소개합니다. (iPerf는 Android, macOS, MikroTik RouterOS 등 다양한 플랫폼용 버전도 제공됩니다.)

iPerf 버전 비교: iPerf2 vs iPerf3

iPerf는 크로스 플랫폼 도구로 별도의 설치 과정이 필요 없습니다. 테스트하려는 두 장비에 파일을 복사해서 실행하기만 하면 됩니다.

iPerf는 서버-클라이언트 방식으로 동작합니다. 첫 번째 장비에서는 iPerf를 서버 모드로 실행해 클라이언트의 트래픽을 기다리고, 두 번째 장비에서는 클라이언트 모드로 실행해 TCP 또는 UDP 트래픽을 생성하면서 최대 데이터 전송 속도를 측정합니다.

현재 iPerf는 iPerf2iPerf3라는 두 개의 독립적인 브랜치가 병렬로 개발되고 있습니다. 두 버전은 기능상 대부분 호환되지만 기본 사용 포트가 다릅니다. iPerf1/2는 5001, iPerf3는 5201 포트를 사용합니다.

  • iPerf2: 병렬 스레드나 양방향 테스트에 적합하며, Windows OS를 공식적으로 지원합니다.
  • iPerf3: 고속 UDP 테스트 구현이 더 뛰어나고, 코드가 훨씬 작으며 최적화가 잘 되어 있습니다.

그 외의 차이는 크지 않아 특정 버전을 고집할 필요는 없습니다(CLI 파라미터도 거의 동일합니다). 이 글에서는 iperf3를 기준으로 설명합니다. 참고로 iPerf3는 Windows 플랫폼을 공식 지원하지는 않지만 실제로는 잘 동작하며, 뚜렷한 버그는 발견되지 않았습니다. 버그를 발견하면 https://github.com/esnet/iperf 에 제보할 수 있습니다.

Windows에 iPerf 설치하기

Windows용 iPerf 3.1.3은 https://iperf.fr/iperf-download.php 에서 다운로드할 수 있으며, iPerf 2.0도 같은 사이트에서 받을 수 있습니다. 설치 과정은 따로 없으며, 압축 파일을 내려받아 드라이브의 로컬 디렉터리에 풀어주기만 하면 됩니다. 압축 안에는 cygwin1.dlliperf3.exe 두 개의 파일만 들어 있습니다.

iPerf를 활용한 네트워크 속도 및 대역폭(처리량) 테스트 방법

Windows용 iPerf GUI 구현체도 여러 가지가 있습니다. 예를 들어 Iperf3-Cygwin-GUIjperf 등이 있습니다.

jperf는 Java로 작성되어 있어 실행하려면 컴퓨터에 Java VM이 설치되어 있어야 합니다. CLI 인터페이스를 그래픽 형태로 제공할 뿐만 아니라, 통신 채널의 대역폭 그래프를 실시간으로 그려주는 기능도 갖추고 있습니다. 사용법도 간단해서 iPerf 서버 주소만 지정하고 스캔을 실행하면 됩니다.

iPerf를 활용한 네트워크 속도 및 대역폭(처리량) 테스트 방법

또한 PowerShell Script Gallery에는 PowerShell 스크립트에서 네트워크 성능 지표를 가져올 수 있는 iPerfAutomate 모듈이 별도로 제공됩니다. 다음 명령으로 설치할 수 있습니다:

Install-Module -Name iPerfAutomate

CentOS 리눅스에 iPerf 설치하기

CentOS 8에서는 iperf3 패키지가 AppStream 기본 저장소에 포함되어 있습니다(CentOS 7에서는 EPEL 저장소에서 찾을 수 있습니다). dnf(yum) 명령으로 설치하세요:

# dnf install iperf3

Debian/Ubuntu 배포판에서는 다음 명령으로 설치할 수 있습니다:

sudo apt install iperf3

iPerf를 활용한 네트워크 속도 및 대역폭(처리량) 테스트 방법

리눅스 서버를 iperf3 서버로 사용하려면 firewalld(iptables)에서 TCP/UDP 5201 포트를 열어야 합니다:

# firewall-cmd --permanent --add-port=5201/udp
# firewall-cmd --permanent --add-port=5201/tcp
# firewall-cmd --reload

iPerf 명령어로 네트워크 속도/대역폭 측정하기

iPerf를 활용한 네트워크 처리량 테스트 예제를 살펴보겠습니다. 여기서는 CentOS 리눅스 호스트를 iPerf 서버로 사용합니다. 먼저 iPerf3를 서버 모드로 실행합니다:

# iperf3 –s

iPerf 서버가 시작되고 TCP 5201 포트에서 연결을 기다립니다.

Server listening on 5201.

: iPerf의 인자는 대소문자를 구분합니다!

iPerf를 활용한 네트워크 속도 및 대역폭(처리량) 테스트 방법

클라이언트와 서버 사이의 방화벽 설정에 따라 -p [포트번호] 인자로 대기 포트를 변경할 수 있습니다. 큰 TCP 윈도우 크기와 다른 TCP 포트로 서버를 실행하려면 다음 명령을 사용합니다:

# iperf3 -s -w 32768 –p 5200

  • -w 32768 – TCP 윈도우 크기를 32KB로 설정(기본값은 약 8KB)
  • -p 5200 – iPerf가 연결을 기다릴 포트(iperf2는 기본적으로 5001, iperf3는 5201 포트를 사용)

이번에는 Windows 10이 설치된 컴퓨터를 iPerf 클라이언트로 사용합니다. 명령 프롬프트를 열고 iPerf 실행 파일이 있는 디렉터리로 이동합니다:
cd c:\tools\iperf
클라이언트에서 대역폭 테스트를 시작하려면 iPerf 서버의 IP 주소(또는 DNS 이름)를 지정합니다:
iperf3.exe -c 192.168.1.200
TCP 윈도우 크기를 늘린 상태로 서버를 실행했다면, 최대 네트워크 부하를 얻기 위해 다음 명령을 사용할 수 있습니다:

iperf3.exe -c 192.168.1.200 -P 8 -t 30 -w 32768

  • -c 192.168.1.200 – iPerf 서버의 IP 주소
  • -w 32768 – TCP 윈도우 크기 증가
  • -t 30 – 테스트를 진행할 시간(초), 기본값은 10초
  • -P 8 – 채널에 최대 부하를 주기 위한 병렬 스레드(스트림) 수

iPerf를 활용한 네트워크 속도 및 대역폭(처리량) 테스트 방법

예제에서는 테스트가 30초간 진행되었습니다. 최종 보고서에서 주목해야 할 값은 마지막 [SUM] 행의 Bandwidth 열입니다. 이 경우 두 호스트 간 평균 네트워크 대역폭은 85.9Mbit/s였습니다. 307MB의 데이터가 송신측과 수신측의 속도가 동일한 대칭 형태(sender=receiver)로 전송되었습니다(Transfer 열).

-f 인자를 사용하면 속도 표시 단위(bits, kilobits, megabits)를 변경할 수 있습니다. 몇 분(몇 시간)에 걸쳐 성능을 관찰해야 하는 장시간 테스트에서는 -i 옵션으로 중간 결과를 표시할 주기를 설정할 수 있습니다.

iPerf를 활용한 네트워크 속도 및 대역폭(처리량) 테스트 방법

역방향 모드(서버가 데이터를 전송하고 클라이언트가 수신)로 실행할 수도 있습니다. 이 경우 클라이언트에서 -R 옵션을 사용하면 됩니다.

기본적으로 iPerf는 TCP 트래픽을 생성합니다. UDP 패킷 기준으로 네트워크 대역폭을 확인해야 한다면 -u 옵션을 사용해야 하며, 이 경우 iPerf 서버도 iperf3 -s –u 명령으로 시작해야 합니다.

인터넷 서비스 업체(ISP)의 대역폭을 테스트해야 한다면 공개 iPerf 서버 중 하나를 이용할 수 있습니다(공개 서버 목록은 관련 페이지에서 확인 가능):

iperf3 -c iperf.scottlinux.com

양방향(듀플렉스) 최대 네트워크 속도를 측정하려면 클라이언트에서 -d 옵션을 사용합니다:

iperf3.exe -c IP -P 8 -t 30 -w 32768 –d

iPerf를 활용한 네트워크 속도 및 대역폭(처리량) 테스트 방법

iPerf로 네트워크 테스트를 진행하는 동안 작업 관리자를 통해 네트워크 연결 처리량 그래프를 함께 모니터링할 수 있습니다.

주의할 점은, 테스트 중 iPerf가 클라이언트와 서버 간 통신 채널의 모든 가용 대역폭을 사용한다는 것입니다. 이는 운영 중인 애플리케이션과 사용자에게 부정적인 영향을 미칠 수 있으므로 실무 환경에서는 신중하게 테스트해야 합니다.

iPerf를 활용한 네트워크 속도 및 대역폭(처리량) 테스트 방법

전체 옵션 목록은 다음과 같이 확인할 수 있습니다:

iperf3 –help

iPerf는 사용이 간편하고 편리한 네트워크 유틸리티로, 두 장비 간의 네트워크 연결 성능과 최대 데이터 전송 속도를 손쉽게 측정할 수 있도록 도와줍니다.