ネットワーク速度を計測するコマンドラインツールを作ってみた
ネットワークの回線速度を計測するツールは speedtest.net が有名ですが、これはブラウザからしか計測できません。 定期的に回線速度を計測して記録したい時や、世界中のサーバーに対してネットワーク速度を計測したい時に、これをブラウザで行うのは大変なので、コマンドラインからネットワーク速度を計測できるツールを作成しました。
速度の計測には speedtest.net の資産を使っていて、ダウンロード/アップロードをする計測先のサーバーは speedtest.net に登録されているものの中から選択することができます。
インストール方法
Mac(Homebrew) の場合
$ brew tap showwin/speedtest $ brew install speedtest $ speedtest Testing From IP: 124.27.198.183 (Fujitsu) [34.7000, 137.7333] Target Server: [6691] 58.53km Shizuoka (Japan) by sudosan Latency: 28.030145ms Download Test: ................ Upload Test: ................ Download: 60.31 Mbit/s Upload: 22.61 Mbit/s
とあっという間に計測できます。 他のOSの場合には こちら にパッケージ化したものがおいてあるので、そちらを使ってください。
使い方
現在地から一番近いサーバーに対して速度計測を行います。
$ speedtest
サーバー一覧を現在地から近い順に並び替えたものを表示します。
$ speedtest --list Testing From IP: 124.27.199.165 (Fujitsu) [34.9769, 138.3831] [6691] 9.03km Shizuoka (Japan) by sudosan [6087] 120.55km Fussa-shi (Japan) by Allied Telesis Capital Corporation [6508] 125.44km Yokohama (Japan) by at2wn [6424] 148.23km Tokyo (Japan) by Cordeos Corp. ... [4580] 2938.66km Ulaanbaatar (Mongolia) by Kewiko LLC ...
いきなり、モンゴルにあるサーバーとの回線速度を計測したくなっても、そのサーバーのIDを指定すれば簡単に計測できます。
$ speedtest --server 4580 Testing From IP: 124.27.198.183 (Fujitsu) [34.7000, 137.7333] Target Server: [4580] 2938.66km Ulaanbaatar (Mongolia) by Kewiko LLC Latency: 292.195371ms Download Test: ........ Upload Test: .... Download: 20.76 Mbit/s Upload: 4.40 Mbit/s
意外と速いですね。
静岡と横浜と東京の平均値を計測したくなったら、複数のサーバーを指定することもできます。
$ speedtest --server 6691 --server 6508 --server 6424 Testing From IP: 124.27.198.183 (Fujitsu) [34.7000, 137.7333] Target Server: [6691] 58.53km Shizuoka (Japan) by sudosan Latency: 31.216696ms Download Test: ................ Upload Test: ........ Target Server: [6508] 192.30km Yokohama (Japan) by at2wn Latency: 16.12025ms Download Test: ................ Upload Test: ................ Target Server: [6424] 208.44km Tokyo (Japan) by Cordeos Corp. Latency: 15.109657ms Download Test: ................ Upload Test: ................ [6691] Download: 60.06 Mbit/s, Upload: 24.17 Mbit/s [6508] Download: 72.95 Mbit/s, Upload: 80.88 Mbit/s [6424] Download: 69.51 Mbit/s, Upload: 75.39 Mbit/s Download Avg: 67.51 Mbit/s Upload Avg: 60.15 Mbit/s
便利ですね!!!
このツールすごいんですよ!
同じようなツールに sivel/speedtest-cli というのがあり、こちらも speedtest.net のサーバーを使って同じように計測しているのですが、 speedtest.net の結果と比較してみると結構差がありました。 ぼくが今回作成したものは、ブラウザで speedtest.net を使って計測するときにかかる約半分の時間で計測が可能で、さらに既存の sivel/speedtest-cli よりも高い精度 (よりspeedtest.netで計測した値に近い) で計測することができます。 詳細が気になる方は 実験結果 をご覧ください。
これでネットワーク速度計測し放題ですね!!!