ネットワークパフォーマンス(端的に言えば回線速度)の計測方法は多々有りますが、クラウドのネットワークパフォーマンスを計測しようとすると、1つ問題が生じます。
多くのクラウドでは、サーバーインスタンス契約後に使えるインターフェースが SSH に限られています。つまりテキストのコンソール画面だけが使える状況です。その制約の中で「どこまでわかりやすくネットワークパフォーマンスを 計測できるか?」という課題があるのでした。
自分が使っているのは speedtest と呼ばれるツールです。この導入から利用、そして実際の出力結果までを紹介します。
まず導入方法ですが、おそらく最も簡単で多くのケースで利用できるのが、この wget を使ったやり方です:
そのまま(パラメータなしで)実行するだけでもアップロード速度とダウンロード速度を計測してくれます:
ダウンロードが 47.94 Mbps、アップロードが 23.04 Mbps という結果でした。まあこれは実行タイミングにも影響されると思いますが、1つの目安にはなると思います。
そして、このツールの特徴の1つでもある "--share" オプションがあります。これを付けて実行すると、実行結果を png 画像にして提供してくれます:
"Share results:" に書かれた URL にアクセスすると、このような画像が表示されます:
上記例は僕の自宅内のサーバーから行ったもので、契約している au ひかり(KDDI)から実行されたことも判別してくれています。また総合判断としての "GRADE: B" という記載もされています。
面白そうだったので、いくつかの環境から実行してみました:
(AWS EC2)
(DTI ServerMan/VPS)
(IDCF)
AWS の EC2 が "GRADE: A+" で速いことになってる!(悪意なし) ネットワークそのものは速いんでしょうかね、でも体感に直結しないのはやはり海外リージョンのせいなのか。。
そして IDCF クラウド、うちの au ひかりよりも速いってこと!? こうなると自宅サーバーで運用中のサービスの移行も検討しないといけないかな・・・
多くのクラウドでは、サーバーインスタンス契約後に使えるインターフェースが SSH に限られています。つまりテキストのコンソール画面だけが使える状況です。その制約の中で「どこまでわかりやすくネットワークパフォーマンスを 計測できるか?」という課題があるのでした。
自分が使っているのは speedtest と呼ばれるツールです。この導入から利用、そして実際の出力結果までを紹介します。
まず導入方法ですが、おそらく最も簡単で多くのケースで利用できるのが、この wget を使ったやり方です:
上記例では /usr/local/bin という Path の通ったディレクトリにあらかじめ移動してから、そこにダウンロードしてくる、という方法を取っています。これで speedtest-cli という実行ファイル(実体は Python スクリプト)が用意できました。# cd /usr/local/bin # wget -O speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py # chmod +x speedtest-cli
そのまま(パラメータなしで)実行するだけでもアップロード速度とダウンロード速度を計測してくれます:
# speedtest-cli Retrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from Kddi Corporation (XXX.XXX.XXX.XXX)... Selecting best server based on latency... Hosted by Too late (Ishikari) [847.06 km]: 38.316 ms Testing download speed........................................ Download: 47.94 Mbits/s Testing upload speed.................................................. Upload: 23.04 Mbits/s #
ダウンロードが 47.94 Mbps、アップロードが 23.04 Mbps という結果でした。まあこれは実行タイミングにも影響されると思いますが、1つの目安にはなると思います。
そして、このツールの特徴の1つでもある "--share" オプションがあります。これを付けて実行すると、実行結果を png 画像にして提供してくれます:
# speedtest-cli --share Retrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from Kddi Corporation (XXX.XXX.XXX.XXX)... Selecting best server based on latency... Hosted by Too late (Ishikari) [847.06 km]: 38.316 ms Testing download speed........................................ Download: 47.94 Mbits/s Testing upload speed.................................................. Upload: 47.94 Mbits/s Share results: http://www.speedtest.net/result/3980766722.png #
"Share results:" に書かれた URL にアクセスすると、このような画像が表示されます:
上記例は僕の自宅内のサーバーから行ったもので、契約している au ひかり(KDDI)から実行されたことも判別してくれています。また総合判断としての "GRADE: B" という記載もされています。
面白そうだったので、いくつかの環境から実行してみました:
(AWS EC2)
(DTI ServerMan/VPS)
(IDCF)
AWS の EC2 が "GRADE: A+" で速いことになってる!(悪意なし) ネットワークそのものは速いんでしょうかね、でも体感に直結しないのはやはり海外リージョンのせいなのか。。
そして IDCF クラウド、うちの au ひかりよりも速いってこと!? こうなると自宅サーバーで運用中のサービスの移行も検討しないといけないかな・・・