はじめに
コロナの影響によりあらゆる企業でテレワークが導入されてきている昨今、私が勤めている会社においてももれなくテレワークが導入され、2年ほどが経過した。
我が家のインターネットサービスは「SEIWA BroadBand」である。これは生和不動産が取り扱っているマンションに問答無用で導入されている無料のサービスである。
このネットワークの回線速度はギリギリテレワークができるくらいに遅い。(たまにTeams会議の接続が遅い or 落ちる)
特に時間帯によっては混雑しているためか、かなり速度が遅く感じることがあるため、興味本位で回線速度を計測してみた。
測定手段
その瞬間の回線速度を単発で計測する場合は、「回線速度 計測」でググって出てきた任意のWebサービスを使用するのが手っ取り早い。
しかし、今回は1日を通した回線速度の傾向を確認したかったため、自動で定期的に計測する必要がある。
軽く調べたところspeedtestというpythonモジュールが便利そうなので使ってみた。
pythonのバージョン
$ py -V
Python 3.11.1
speedtest-cliをpipでインストール
$ pip install speedtest-cli
以下、speedtest-cliを使用して回線速度を計測するソースコードである。
import speedtest
import datetime
import time
import csv
INTERVAL = 1800 # 実行間隔 1800[sec] = 30[min]
SAMPLE_NUM = 10 # 計測結果にばらつきがあったため複数サンプルをとる
threads = None
if __name__ == "__main__":
servers = []
s = speedtest.Speedtest()
s.get_servers(servers)
s.get_best_server()
with open("results.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["date", "download", "upload"])
while True:
base_time = time.time()
date = datetime.datetime.now()
d_speed = 0.0
u_speed = 0.0
for i in range(SAMPLE_NUM):
d_speed += s.download(threads=threads)
u_speed += s.upload(threads=threads)
d_speed /= SAMPLE_NUM
u_speed /= SAMPLE_NUM
with open("results.csv", "a", newline="") as f:
writer = csv.writer(f)
writer.writerow([date.strftime("%Y年%m月%d日 %H:%M:%S"), d_speed, u_speed])
next_time = INTERVAL - abs(base_time - time.time())
time.sleep(next_time)
コマンドライン上でこのプログラムを実行すれば同階層にresults.csvが作成され、測定結果がINTAVAL間隔で逐次書き出される。ひたすら定期実行する処理になっているので、停止したくなった場合はCtrl+Cなどでプロセスを落とす。(あまりイケてない。。。)
speedtest-cliのPython API
https://github.com/sivel/speedtest-cli/wiki
測定結果
2023年1月14日~1月17日にかけて測定した結果がコチラ!
![](https://sabeblog.com/wp-content/uploads/2023/01/results-1024x471.png)
休日(15日)の午後と平日(16日)の夜は明らかに速度が遅くなっていた。ひどいときは一桁Mbpsである。この結果は日ごろの自身の体感と一致している。
(そもそも全体的に速度が遅くMaxでも80Mbps出ていない…)
公式でも数Mbpsになることがあると言っているので、誰も嘘はついていない。
![](https://sabeblog.com/wp-content/uploads/2023/01/seiwabb-1024x332.png)
無料インターネットを廃止していいので家賃を下げてくれ、と少しだけ思ってしまった。
これが我が家の回線速度だ!!!
コメント