labunix's blog

labunixのラボUnix

■debian stretchでスピードテストを行うツールを検討してみる。

■debian stretchでスピードテストを行うツールを検討してみる。

$ lsb_release -d
Description:	Debian GNU/Linux 10 (buster)

■今回試すspeedtestは7つ。
 fastパッケージは見つからず、検索結果が多くなるので除外。
 NetSpeedも検索結果にはあるが、GUIなので除外。
 視点を変えてみるのも面白いが、現状として、結果的にはwget/curlで十分。

 Monitoring Network Bandwidth and Speed in Linux
 https://itsfoss.com/network-speed-monitor-linux/

$ echo -e "NetSpeed\nspeedtest-cli\nnethogs\n^nload\n^cbm\n^iperf\nvnstat\niftop" | \
  awk '{a=index($1,"^")+1;print "echo \042["NR-1,substr($1,a)"]\042;apt-cache search "$1}' | sh
[0 NetSpeed]
cairo-dock-netspeed-plug-in - Netspeed plug-in for Cairo-dock
gnome-applets - Various applets for the GNOME panel - binary files
mate-applets - Various applets for the MATE panel
mate-applets-common - Various applets for the MATE panel (common files)
[1 speedtest-cli]
speedtest-cli - Command line interface for testing internet bandwidth using speedtest.net
[2 nethogs]
nethogs - Net top tool grouping bandwidth per process
[3 nload]
nload - realtime console network usage monitor
[4 cbm]
cbm - display in real time the network traffic speed
cbmc - bounded model checker for C and C++ programs
[5 iperf]
iperf - Internet Protocol bandwidth measuring tool
iperf3 - Internet Protocol bandwidth measuring tool
[6 vnstat]
vnstat - console-based network traffic monitor
vnstati - image output support for vnStat
[7 iftop]
iftop - displays bandwidth usage information on an network interface

■1 speedtest-cli
 Webサービスもあるものの、基本的にはソケットテスト。
 プロキシを通過しないし、IPv6での接続を試みるなど、FW等でブロックされる私の環境には向かないツール。

 SPEEDTEST
 https://www.speedtest.net/

$ sudo apt-get install -y speedtest-cli

$ speedtest --version
2.0.2

■計測出来なかったので、何をしているか見たときのコマンド。

$ strace speedtest-cli --simple --secure | tee -a speedtest-cli.log

■ヘッダが無いので付けてみる。
 ※距離は使用する環境によって異なる。

$ speedtest --list | awk 'BEGIN{print "   ID) 組織名(市町村区, 国名) [距離 km]"}/Japan/{print $0}'
   ID) 組織名(市町村区, 国名) [距離 km]
14623) IPA CyberLab (Bunkyo, Japan) [20.54 km]
24333) Rakuten Mobile , Inc (Tokyo, Japan) [24.93 km]
15047) OPEN Project (via 20G SINET) (Tokyo, Japan) [24.93 km]
32907) KFNET (Tokyo, Japan) [24.93 km]
33558) Gnehc LLC (Tokyo, Japan) [24.93 km]
 7139) SoftEther Corporation (Tsukuba, Japan) [29.60 km]
 6087) Allied Telesis Capital Corporation (Fussa-shi, Japan) [44.67 km]
 8407) Allied Telesis Capital Corporation (Sagamihara, Japan) [51.65 km]
 6766) JAIST(ino-lab) (Nomi, Japan) [297.74 km]
24774) Local24 Inc., (Kyoto, Japan) [377.08 km]
 6405) Allied Telesis Capital Corporation (Misawa, Japan) [550.41 km]
18709) extride inc (Hitoyoshi, Japan) [926.32 km]
 6581) haza (Haebaru, Japan) [1573.40 km]
21118) GLBB Japan (Naha, Japan) [1575.13 km]
30230) Lequios (Naha City, Japan) [1575.13 km]
31181) Allied Telesis Capital Corp. (Okinawa, Japan) [1580.89 km]2 nethogs
 リアルタイムで閲覧できる。簡単にログにできないのは残念。

$ sudo apt-get install -y nethogs

$ sudo nethogs
NetHogs version 0.8.5-2+b1

    PID USER     PROGRAM                    DEV        SENT      RECEIVED       
   2561 labunix  ..sr/lib/firefox-esr/fire  br0         5.171      10.757 KB/sec
      ? root     ..2.31.31.90:39810-192.16              0.058       0.045 KB/sec
      ? root     unknown TCP                            0.000       0.000 KB/sec

  TOTAL  
■3 nload
 これもリアルタイム重視だけど、最小、最大、平均が分かるのは良い。

$ sudo apt-get install -y nload

$ nload -t 2000
Device br0 [172.31.31.XXX] (1/6):
================================================================================
Incoming:




                                                       Curr: 180.73 kBit/s
                                                       Avg: 180.00 kBit/s
                                                       Min: 1.84 kBit/s
                                                       Max: 685.42 kBit/s
                                                  .    Ttl: 95.80 MByte
Outgoing:




                                                       Curr: 147.13 kBit/s
                                                       Avg: 40.08 kBit/s
                                                       Min: 1.91 kBit/s
                                                       Max: 147.13 kBit/s
                                                       Ttl: 9.94 MByte

■4 cbm
 インターフェイスごとのリアルタイムツール。

$ sudo apt-get install -y cbm

$ cbm | tee -a cbm.log
$ tac cbm.log
$ 

  Interface           Receive           Transmit              Total
  eth0                  76.38 kB/s          1.61 kB/s         77.99 kB/s
  tap0                   0.00 B/s           0.00 B/s           0.00 B/s
  br0                   71.94 kB/s          1.45 kB/s         73.39 kB/s
  lo                     0.00 B/s           0.00 B/s           0.00 B/s
  docker0                0.00 B/s           0.00 B/s           0.00 B/s
  br1                    0.00 B/s           0.00 B/s           0.00 B/s



  Interface                             eth0
  Address                               N/A







 Up/down | q Quit | b Bits/Bytes | +- Update interval (1000ms)5 iperf
 サーバ、クライアント型。iperfとiperf3の違いは以下にあるので、iperf3をそのまま使うことにする。

 iperf3の使い方まとめ
 https://www.lifull.blog/entry/2014/02/07/120719

$ sudo apt-get install -y iperf3

$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

$ iperf3 -c kvm-stretch
Connecting to host 192.168.100.XXX, port 5201
[  5] local 172.31.31.XXX port 54890 connected to 192.168.100.XXX port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  88.0 MBytes   738 Mbits/sec    0    342 KBytes       
[  5]   1.00-2.00   sec  86.7 MBytes   728 Mbits/sec    0    356 KBytes       
[  5]   2.00-3.00   sec  87.3 MBytes   732 Mbits/sec    0    356 KBytes       
[  5]   3.00-4.00   sec  87.4 MBytes   733 Mbits/sec    0    356 KBytes       
[  5]   4.00-5.00   sec  85.9 MBytes   721 Mbits/sec    0    356 KBytes       
[  5]   5.00-6.00   sec  87.3 MBytes   732 Mbits/sec    0    356 KBytes       
[  5]   6.00-7.00   sec  86.6 MBytes   727 Mbits/sec    0    356 KBytes       
[  5]   7.00-8.00   sec  87.1 MBytes   730 Mbits/sec    0    373 KBytes       
[  5]   8.00-9.00   sec  88.2 MBytes   740 Mbits/sec    0    389 KBytes       
[  5]   9.00-10.00  sec  86.5 MBytes   726 Mbits/sec    0    389 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   871 MBytes   731 Mbits/sec    0             sender
[  5]   0.00-10.04  sec   870 MBytes   726 Mbits/sec                  receiver

iperf Done.

■サーバ側

Accepted connection from 172.31.31.XXX, port 54888
[  5] local 192.168.100.XXX port 5201 connected to 172.31.31.XXX port 54890
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  82.9 MBytes   695 Mbits/sec                  
[  5]   1.00-2.00   sec  86.7 MBytes   728 Mbits/sec                  
[  5]   2.00-3.00   sec  87.5 MBytes   734 Mbits/sec                  
[  5]   3.00-4.00   sec  87.1 MBytes   731 Mbits/sec                  
[  5]   4.00-5.00   sec  86.2 MBytes   723 Mbits/sec                  
[  5]   5.00-6.00   sec  87.1 MBytes   731 Mbits/sec                  
[  5]   6.00-7.00   sec  86.9 MBytes   729 Mbits/sec                  
[  5]   7.00-8.00   sec  87.0 MBytes   730 Mbits/sec                  
[  5]   8.00-9.00   sec  87.5 MBytes   734 Mbits/sec                  
[  5]   9.00-10.00  sec  87.0 MBytes   730 Mbits/sec                  
[  5]  10.00-10.04  sec  3.75 MBytes   726 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.04  sec   870 MBytes   726 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------6 vnstat
 sysstat同様にデータを貯める必要がある。

 vnStat
 https://humdi.net/vnstat/

$ sudo apt-get install -y vnstat
$ vnstat

                      rx      /      tx      /     total    /   estimated
 tap0: Not enough data available yet.
 br1: Not enough data available yet.
 eth0:
     6'20        4.56 MiB  /     994 KiB  /    5.54 MiB  /       0 KiB
         today      4.56 MiB  /     994 KiB  /    5.54 MiB  /      --    

 docker0: Not enough data available yet.
 br0:
     6月 '20        4.36 MiB  /     963 KiB  /    5.30 MiB  /       0 KiB
         today      4.36 MiB  /     963 KiB  /    5.30 MiB  /      --    

■sysstatで取れているので、あえてのvnstatは必要無いかも。

$ env LANG=C sar -n DEV 1 -f /var/log/sysstat/sa31 | awk '/IFACE|Average/'
00:00:02        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
Average:    virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:           lo      7.88      7.88      0.46      0.46      0.00      0.00      0.00      0.00
Average:          br0     84.48     72.76    232.87      5.58      0.00      0.00      0.00      0.00
Average:       virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:          br1      0.00      0.04      0.00      0.01      0.00      0.00      0.00      0.00
Average:         tap0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth0    176.85     73.01    240.68      5.89      0.00      0.00      0.04      0.20
22:25:02        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
Average:         eth0     20.14     12.39     17.91      1.85      0.00      0.00      0.03      0.01
Average:         tap0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:          br0     13.71     12.23     17.22      1.79      0.00      0.00      0.00      0.00
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:          br1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00[7 iftop]
 ネットワーク使用量な感じなので、速度とは異なる気がする。

$ sudo apt-get install -y iftop
$ sudo iftop
                          12.5Kb                     25.0Kb                     37.5Kb                     50.0Kb               62.5Kb
└──────────────────────────┴──────────────────────────┴──────────────────────────┴──────────────────────────┴──────────────────────────
192.168.100.200                                       => 172.31.31.90                                           10.5Kb  10.9Kb  10.8Kb
                                                      <=                                                        3.86Kb  4.14Kb  5.73Kb
192.168.100.200                                       => 172.31.31.252                                           876b    755b   1.13Kb
                                                      <=                                                        1.49Kb  1.41Kb  2.28Kb
192.168.100.200                                       => 104.244.42.72                                             0b    120b     75b
                                                      <=                                                           0b    120b     75b
192.168.100.200                                       => 203.104.153.77                                            0b     83b     52b
                                                      <=                                                           0b    150b     94b
192.168.100.200                                       => xx-fbcdn-shv-01-nrt1.fbcdn.net                            0b    114b    143b
                                                      <=                                                           0b    114b    117b
192.168.100.200                                       => 193.244.178.107.bc.googleusercontent.com                  0b    114b     72b
                                                      <=                                                           0b    114b     72b
192.168.100.200                                       => 227.201.107.34.bc.googleusercontent.com                   0b    114b     72b
                                                      <=                                                           0b    114b     72b
192.168.100.200                                       => 231.220.107.34.bc.googleusercontent.com                   0b    114b     72b
                                                      <=                                                           0b    114b     72b
192.168.100.200                                       => nrt12s22-in-f19.1e100.net                                 0b    114b     72b
                                                      <=                                                           0b    114b     72b
192.168.100.200                                       => 27.133.135.55                                             0b    101b     63b
                                                      <=                                                           0b    101b     63b
192.168.100.200                                       => ec2-18-180-250-24.ap-northeast-1.compute.amazonaws.c      0b    120b     75b
                                                      <=                                                           0b     78b     49b
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
TX:             cum:   30.1KB   peak:   26.9Kb                                                         rates:   11.4Kb  12.6Kb  15.1Kb
RX:                    20.3KB           27.4Kb                                                                  5.35Kb  6.55Kb  10.2Kb
TOTAL:                 50.4KB           54.3Kb                                                                  16.8Kb  19.2Kb  25.2Kb