Speedtest Trackerで回線速度を測ってみた

August 14, 2021

動機

最近賃貸に無料の回線(UCOM光)が導入された。部屋のLANコネクタに接続すればそのまま使えるようになっている。 今まではSoftbank光を個人契約して使ってきた。毎月4000円ほどお布施しているので負担が結構大きい。 UCOM光に乗り換えた後にトラブルが発生するのは避けたいので、回線速度・安定性・セキュリティ等問題ないか検討しておきたい。 今回は回線速度に注目して調査する。

ツール調査

fastspeedtestなどの回線速度計測サービスがある。 Webサービスでは周期的なデータ収集も難しいので、スクリプトで提供されているものを使いたいところ。 speedtestはgithubで公開されており、簡単にインストールして使うことができる。

はじめはspeedtestを周期的に実行するスクリプトを作ろうと思ったが、既にありそうなので調べるとSpeedtest Trackerなるものが出てきた

Speedtest Tracker

Speedtest Trackerのデモサイト(https://speedtest.henrywhitaker.com/)がある。これをローカルで使えるようにする。

WebUIで見た目もよく、定期的にspeedtestを実行、結果をダウンロードできる。 しかもdockerイメージも公開されていて簡単に導入できる。

インストール

Speedtest Trackerの公式(https://github.com/henrywhitaker3/Speedtest-Tracker)にある通りに進める。

余っているラズパイがあったので、ubuntu20.04をインストールして環境構築した。 dockerは公式の手順(https://docs.docker.com/engine/install/)通りにインストール。

Speedtest Trackerのdockerイメージをpullする。ラズパイなのでarm版となる。

docker pull henrywhitaker3/speedtest-tracker:latest-arm

コンテナ作成。

docker create \
      --name=speedtest \
      -p 8765:80 \
      -v /path/to/data:/config \
      -e OOKLA_EULA_GDPR=true \
      --restart unless-stopped \
      henrywhitaker3/speedtest-tracker:latest-arm

コンテナ起動。

docker container ls -a #CONTAINER IDを確認
docker container start <CONTAINER ID>

localhost:8765にアクセスするとSpeedtest Trackerが起動していることがわかる。

first

設定と計測

SettingsページでScheduleServerを設定する。

setting

  • Schedule: CRON表記で指定。

    • 15分間隔で計測するよう設定。
  • Server: 回線速度を計測する対象サーバーIDを指定。指定なければランダムに指定される。

    • speedtest-cli --listで一覧を確認できる。
    • 今回はOPEN Project (via 20G SINET)の15047で固定。

設定した後、Start your first testで周期的な計測が開始される。 大体一日まわすと以下のような結果を得られる。

result

All Testsページでは結果の詳細を確認できる。

result detail

SettingsページのBackup/Restoreではcsvまたはjsonでダウンロード可能。

backup

まとめ

SpeedTest Trackerを使ってデータ収集することができた。 csvをダウンロードできるのが便利でスプレッドシートで簡単に比較できる。 今後は2つの回線のデータを収集して比較していきたい。


Profile picture

Written by yanofu

© 2021, yanofu