iperf3 유틸리티를 이용한 장치간 네트워크 Throughput 측정하기
- 리눅스(Linux) 활용
- 2021. 2. 11.
1. 개요
iperf3이라는 유틸리티를 이용하여 장치간 네트워크 트래픽에 대한 Throughput을 측정할 수 있습니다. Throughput은 보통 장치의 네트워킹 성능을 측정하거나 네트워크의 품질을 판단하는데 사용됩니다.
본 글에서는 리눅스 시스템(우분투 16.04) 상에서 iperf3 유틸리티를 이용하여 두 장치간 네트워크 Throughput을 측정하는 방법을 소개합니다.
2. 장치(PC 등) 별 네트워크 인터페이스 주소 설정
두 장치 사이에서 교환되는 네트워크 트래픽에 대한 성능을 측정하므로 2개의 리눅스 장치를 사용합니다.
장치1에서 다음 명령으로 IPv4 및 IPv6 주소를 설정합니다. 원할 경우 MAC 주소도 설정할 수 있습니다. 여기서는 네트워크 인터페이스 이름으로 eth0을 사용하고 임의의 IPv4/IPv6 주소를 사용했지만, 시스템에 맞게 다른 값을 사용하면 됩니다.
ip link set dev eth0 down
ip link set dev eth0 address 00:01:02:03:04:05
ip link set dev eth0 up
ifconfig eth0 add 1090::8:800:200C:4185/64
ifconfig eth0 192.168.1.5
장치2에서 다음 명령으로 IPv4 및 IPv6 주소를 설정합니다. 원할 경우 MAC 주소도 설정할 수 있습니다. 여기서는 네트워크 인터페이스 이름으로 eth0을 사용하고 임의의 IPv4/IPv6 주소를 사용했지만, 시스템에 맞게 다른 값을 사용하면 됩니다.
ip link set dev eth0 down
ip link set dev eth0 address 00:01:02:03:04:06
ip link set dev eth0 up
ifconfig eth0 add 1090::8:800:200C:4186/64
ifconfig eth0 192.168.1.6
3. Ping/Ping6 유틸리티를 이용한 장치간 통신 확인
두 장치간 네트워크 Throughput을 측정하기 위해서는, 기본적으로 두 장치간 IP 통신이 가능해야 하므로, Ping/Ping6 유틸리티를 이용하여 장치간 IP 통신이 가능한지 확인합니다.
장치1에서 다음 명령으로 IPv4 통신 가능 여부를 확인합니다.
ping 192.168.1.6
또한 장치1에서 다음 명령으로 IPv6 통신 가능 여부를 확인합니다.
ping6 -I eth0 1090::8:800:200C:4186
위 명령들로 두 장치간의 IPv4/IPv6 통신 여부가 확인되면 iperf3를 이용하여 네트워크 Throughput을 측정할 수 있습니다.
4. iperf3 유틸리티를 이용한 장치간 IPv4 Throughput 측정
장치 2에서 다음을 실행합니다.
iperf3 -s -i 1
각 옵션의 의미는 다음과 같습니다.
- -s : 서버로 동작
- -i 1 : 1초 단위로 Throughput 측정 및 출력
장치 1에서 다음 명령으로 IPv4 TCP Throughput을 측정합니다.
iperf3 -c 192.168.1.6 -i 1 -t 30
각 옵션의 의미는 다음과 같습니다.
- -c 192.168.1.6 : 클라이언트로 동작하며, 192.168.1.6 주소를 갖는 서버에 접속하여 측정
- -i 1 : 1초 단위로 Throughput 측정 및 출력
- -t 30 : 30초간 측정
UDP Throughput을 측정할 경우에는 다음과 같이 "-u -b <Bandwidth>" 옵션을 추가로 사용합니다. 이 때 Bandwidth는 네트워크 인터페이스 성능 및 네트워크 용량을 감안하여 적당한 값을 사용합니다.
iperf3 -c 192.168.1.6 -i 1 -t 30 -u -b 100M
5. iperf3 유틸리티를 이용한 장치간 IPv6 Throughput 측정
장치 2에서 다음을 실행합니다.
iperf3 -s -i 1
각 옵션의 의미는 다음과 같습니다.
- -s : 서버로 동작
- -i 1 : 1초 단위로 Throughput 측정 및 출력
장치 1에서 다음 명령으로 IPv6 TCP Throughput을 측정합니다.
iperf3 -c 1090::8:800:200C:4186 -i 1 -t 30
각 옵션의 의미는 다음과 같습니다.
- -c 1090::8:800:200C:4186 : 클라이언트로 동작하며, 1090::8:800:200C:4186 주소를 갖는 서버에 접속하여 측정
- -i 1 : 1초 단위로 Throughput 측정 및 출력
- -t 30 : 30초간 측정
UDP Throughput을 측정할 경우에는 다음과 같이 "-u -b <Bandwidth>" 옵션을 추가로 사용합니다. 이 때 Bandwidth는 네트워크 인터페이스 성능 및 네트워크 용량을 감안하여 적당한 값을 사용합니다.
iperf3 -c 1090::8:800:200C:4186 -i 1 -t 30 -u -b 100M
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'리눅스(Linux) 활용' 카테고리의 다른 글
error while loading shared libraries 현상 해결방법 (1) | 2022.03.13 |
---|---|
dos2unix - 텍스트 파일의 줄 구분자(Line separator) 변경 (0) | 2021.12.28 |
우분투(Ubuntu) 리눅스에 네트워크 관련 유틸리티 설치하기 (0) | 2020.03.19 |
리눅스 ip 유틸리티 사용법 : IPv4/IPv6 라우팅 테이블 관리 (0) | 2020.03.15 |
리눅스 ip 유틸리티 사용법 : IPv4/IPv6 주소 관리 (0) | 2020.03.14 |
우분투(Ubuntu) 리눅스에 ifconfig 설치하기 (0) | 2020.03.06 |
리눅스 시스템에서 IPv6 주소 설정/확인하기 (0) | 2020.03.06 |
xxd : 파일의 내용을 16진수 형식으로 확인(hex dump) (0) | 2020.02.10 |