don't stop believing

Linux에서 인터넷 대역폭(속도) 측정하기 - iperf3 본문

Network

Linux에서 인터넷 대역폭(속도) 측정하기 - iperf3

Tongchun 2019. 1. 15. 17:05

Linux에서 Bandwidth를 측정할 때 지금까지 iperf를 사용했습니다.

그러다 upload와 download를 구분이 필요했고 iperf3에서 가능한 것을 확인했습니다.

바로 들어갑니다.


Ubuntu에서 설치할 때는 apt-get을 사용합니다.

1
$ sudo apt-get install iperf3
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

CentOS에서는 yum입니다.

1
$ sudo yum install iperf3
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

iperf3도 Server와 Client로 역할이 나눠집니다. 그래서 아래와 같이 실행합니다.

Server: 10.10.0.78 (CentOS)

Client: 10.10.1.168 (Ubuntu)

두 서버 모두 사내 PC입니다.


Server 역할을 실행하겠습니다. iperf와 동일하게 -s 플레그로 실행합니다. 

그리고 출력되는 측정 내역의 단위를 지정할 수 있습니다. -f 플레그에 k, m, g 또는 K, M, G를 선택할 수 있습니다.  

소문자인 k, m, g는 Kbits, Mbits, Gbits를 의미하며, 대문자인 K, M, G는 KBytes, Mbytes, Gbytes 입니다.

Mbits로 출력하려면 -f m를 추가합니다.

1
2
3
4
$ iperf3 -s -f m
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

iperf3 Server를 실행하면 기본 port는 5201입니다. 만약 port를 지정하고 싶다면 -p 플레그에 원하는 포트를 추가합니다.

port 3000으로 다시 실행해 보겠습니다.

1
2
3
4
$ iperf3 -s -p 3000 -f m
-----------------------------------------------------------
Server listening on 3000
-----------------------------------------------------------
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

추가로 iperf3를 데몬으로 실행하고 출력 내용을 파일로 저장하고 싶다면 아래와 같이 -D 플래그를 추가할 수 있습니다.

1
$ iperf3 -s -p 3000 -f m -D > iperf3log
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

위 명령을 실행한 경로에 iperf3log 파일이 생성되며 실시간 확인은 tail 명령으로 확인할 수 있습니다.

tail -f iperf3log


서버는 준비가 되었습니다.

이제 Client에서 서버로 패킷을 보내 bandwidth를 확인해 봅니다. client 명령은 아래와 같습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ iperf3 -c 10.10.0.78 -f m
Connecting to host 10.10.0.78, port 5201
[ 4] local 10.10.1.168 port 49508 connected to 10.10.0.78 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 11.6 MBytes 97.0 Mbits/sec 0 201 KBytes
[ 4] 1.00-2.00 sec 11.2 MBytes 94.1 Mbits/sec 0 201 KBytes
[ 4] 2.00-3.00 sec 11.2 MBytes 94.1 Mbits/sec 0 201 KBytes
[ 4] 3.00-4.00 sec 11.2 MBytes 94.1 Mbits/sec 0 201 KBytes
[ 4] 4.00-5.00 sec 11.2 MBytes 94.1 Mbits/sec 0 201 KBytes
[ 4] 5.00-6.00 sec 11.2 MBytes 94.2 Mbits/sec 0 201 KBytes
[ 4] 6.00-7.00 sec 11.2 MBytes 94.1 Mbits/sec 0 201 KBytes
[ 4] 7.00-8.00 sec 11.2 MBytes 94.2 Mbits/sec 0 263 KBytes
[ 4] 8.00-9.00 sec 11.2 MBytes 94.0 Mbits/sec 0 263 KBytes
[ 4] 9.00-10.00 sec 11.3 MBytes 94.8 Mbits/sec 0 307 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 113 MBytes 94.5 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 112 MBytes 94.1 Mbits/sec receiver
iperf Done.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

iperf3에서는 sender와 receiver가 구분되 출력됩니다. sender는 upload, reciver는 download로 보시면 됩니다.

Server쪽에서도 비슷하게 출력되고 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 10.10.1.168, port 49506
[ 5] local 10.10.0.78 port 5201 connected to 10.10.1.168 port 49508
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 10.8 MBytes 90.4 Mbits/sec
[ 5] 1.00-2.00 sec 11.2 MBytes 94.1 Mbits/sec
[ 5] 2.00-3.00 sec 11.2 MBytes 94.1 Mbits/sec
[ 5] 3.00-4.00 sec 11.2 MBytes 94.1 Mbits/sec
[ 5] 4.00-5.00 sec 11.2 MBytes 94.1 Mbits/sec
[ 5] 5.00-6.00 sec 11.2 MBytes 94.1 Mbits/sec
[ 5] 6.00-7.00 sec 11.2 MBytes 94.1 Mbits/sec
[ 5] 7.00-8.00 sec 11.1 MBytes 93.2 Mbits/sec
[ 5] 8.00-9.00 sec 11.2 MBytes 94.0 Mbits/sec
[ 5] 9.00-10.00 sec 11.2 MBytes 94.1 Mbits/sec
[ 5] 10.00-10.05 sec 576 KBytes 93.6 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.05 sec 0.00 Bytes 0.00 Mbits/sec sender
[ 5] 0.00-10.05 sec 112 MBytes 93.6 Mbits/sec receiver
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

여기까지 기본적인 사용 방법이었습니다.

더 자세한 내용은 아래 링크에서 참고하세요.

https://www.mankier.com/1/iperf3


Comments