しょ〜うぃん広場

おもにTech系なブログ、ときどき個人的なブログ

ネットワーク速度を計測するコマンドラインツールを作ってみた

ネットワークの回線速度を計測するツール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で計測した値に近い) で計測することができます。 詳細が気になる方は 実験結果 をご覧ください。

これでネットワーク速度計測し放題ですね!!!