[Linux, Mac] 명령행으로 인터넷 회선 측정 또는, 두 리눅스/Mac 사이에서의 회선 속도 측정 Computer Tip

미국 산호세 사무실에서 한달 정도 있었는데,
인터넷 회선 속도가 너무 겉 잡을 수가 없어서,
전용선을 설치해야 하나 고민을 했었습니다.

그 때 주로 인터넷 회선 속도 측정한 것은,
구글에 들어가서, "speed test" 라고 검색을 하면,

위와 같이 검색결과의 처음에 나타나는데, 아마도 구글이 속도 테스트를 위해서 만들어 준 것인건가 봅니다.
하단 파란 "RUN SPEED TEST" 단추를 누르면 약 십여초 이후에 다음과 같이 결과가 나옵니다.

(지금은 수정된 상태라서 괜찮게 나오는데, 고치기 전에는 다운로드가 1Mbps 에서 왔다 갔다 했을 때가 많았습니다.)
암튼 두 번 정도 이것 저것 테스트를 해 보다가, 결국은 벽에 나와있는 UTP 라인을 따라 연결되어 있는 스위치의
펌웨어를 업그레이드 하고 포트 변경하고 하여 결국은 위와 같은 정도의 일정 속도가 회복되었습니다.
그래서 한국에서 나오는 속도의 1/5 정도 됩니다만, 이게 어디냐고 행복해 합니다. 역시 인터넷 빠른 것은
우리나라 최고. 그런데 인터넷이 느리다고 가정하고 시스템 설계 및 제품 개발을 해야 한다는.. T.T)

그러다가 위의 구글 말고도 터미널에서 명령행으로 회선 속도를 측정해 보고 싶었습니다.
(역시 자동화를 하려면 아이러니 하게도 명령행 인터페이스가 최고라는..)

그러다가 찾은 것이 바로, speedtest-cli 라는 것입니다.

위에서 처럼,
pip install speedtest-cli
라고 pip 로 설치를 해도 되고, 대부분의 시스템에서는
이미 패키징이 존재합니다.

맥에서는,
brew install speedtest-cli
라고 설치하면 되고,

우분투는,
sudo apt install speedtest-cli
라고 하면 됩니다.

그리고 실제 돌려보면,

speedtest-cli
Retrieving speedtest.net configuration...
Testing from Korea Telecom (175.209.228.141)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by kdatacenter.com (Seoul) [2.55 km]: 4.481 ms
Testing download speed................................................................................
Download: 91.59 Mbit/s
Testing upload speed......................................................................................................
Upload: 4.01 Mbit/s

위와 같이 한국에서는 다운: 91Mbps, 업: 4Mbps 가 나오고,

산호세에서는

speedtest-cli
Retrieving speedtest.net configuration...
Testing from Comcast Business (50.226.6.230)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by KamaTera INC (Santa Clara, CA) [6.09 km]: 8.544 ms
Testing download speed................................................................................
Download: 18.12 Mbit/s
Testing upload speed................................................................................................
Upload: 8.86 Mbit/s

위와 같이 다운:18Mbps, 업:8Mbps
가 나오네요. 다운로드는 차이가 많이나지만 업로드는 그래도 2배 정도 빠르네요.

그런데 구글이나 위와 같이 스피드테스트 모두 특정 인테넷 서버를 통과하는 것이라
어느 두 지점 사이의 속도를 이야기 하기에는 정확하지 않을 수 있습니다.

그럴 때 사용할 수 있는 것이 바로 iperf3 라는 명령을 이용하면 됩니다.

이 명령 역시 맥과 리눅스 모두 잘 동작합니다.

설치 역시,

brew install iperf3
로 맥에서 설치하고,

sudo apt install iperf3
라고 우분투에서 설치했습니다.

저 같은 경우에는 서울에 있는 서버랑 SSH 터널링을 이용하므로,
우선 서버 에서,

iperf3 -s
라고 서버 모드로 동작을 시키면,
-----------------------------------------------------------
Server listening on 5201

위와 같이 5201 포트로 대기하는 것이 보였습니다.

그래서 SSH 터널링으로 5201 포트대신 로컬의 55201 포트를 바라보게
설정하였습니다.

LocalForward 55201 localhost:5201

그 다음 원격에서

iperf3 -c localhost -p 55201
라고 명령을 돌리면,
Connecting to host localhost, port 55201
[  7] local ::1 port 52657 connected to ::1 port 55201
[ ID] Interval           Transfer     Bitrate
[  7]   0.00-1.00   sec  3.02 MBytes  25.3 Mbits/sec
[  7]   1.00-2.00   sec   510 KBytes  4.17 Mbits/sec
[  7]   2.00-3.00   sec   255 KBytes  2.09 Mbits/sec
[  7]   3.00-4.00   sec   510 KBytes  4.18 Mbits/sec
[  7]   4.00-5.00   sec   510 KBytes  4.17 Mbits/sec
[  7]   5.00-6.00   sec   542 KBytes  4.42 Mbits/sec
[  7]   6.00-7.00   sec   510 KBytes  4.17 Mbits/sec
[  7]   7.00-8.00   sec   255 KBytes  2.10 Mbits/sec
[  7]   8.00-9.00   sec   526 KBytes  4.31 Mbits/sec
[  7]   9.00-10.00  sec   510 KBytes  4.18 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  7]   0.00-10.00  sec  7.05 MBytes  5.91 Mbits/sec                  sender
[  7]   0.00-10.00  sec  4.50 MBytes  3.77 Mbits/sec                  receiver

위와 같이 해당 서버와의 다운로드와 업로드 속도가 나옵니다.

이때 서버에서도 동일한,

Accepted connection from ::1, port 46354
[  5] local ::1 port 5201 connected to ::1 port 46356
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec   416 KBytes  3.41 Mbits/sec
[  5]   1.00-2.00   sec   352 KBytes  2.88 Mbits/sec
[  5]   2.00-3.00   sec   256 KBytes  2.10 Mbits/sec
[  5]   3.00-4.00   sec   512 KBytes  4.19 Mbits/sec
[  5]   4.00-5.00   sec   480 KBytes  3.93 Mbits/sec
[  5]   5.00-6.00   sec   480 KBytes  3.93 Mbits/sec
[  5]   6.00-7.00   sec   480 KBytes  3.93 Mbits/sec
[  5]   7.00-8.00   sec   480 KBytes  3.93 Mbits/sec
[  5]   8.00-9.00   sec   480 KBytes  3.93 Mbits/sec
[  5]   9.00-10.00  sec   448 KBytes  3.67 Mbits/sec
[  5]  10.00-10.48  sec   224 KBytes  3.79 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.48  sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-10.48  sec  4.50 MBytes  3.60 Mbits/sec                  receiver

것을 띄워주네요.. (sender 는 결과가 없네요..)

암튼 아주 정확하지는 않다도 참고할 만한 자료로 활용해도 되겠네요.


어느 분께는 도움이 되셨기를 ..


핑백

덧글

댓글 입력 영역

구글애드텍스트