紫色のつぶやき

どうせそんな悩みは1年後にはどうでもよくなってる

Softbank Airの限界 ~回線速度自動計測で見えてきたもの~

Softbank Air届きました。 速度に満足できなければ届いてから8日間以内であれば契約解除できるとのことなのできちんと検証をしてから契約を決めたいですね。今回は回線速度の自動計測に挑戦です!

速度を24時間自動計測

インターネット回線の速度は使用環境によっても大きく異なるし、検索しても「Softbank Air遅すぎる!」なんていう誰かのツイートを貼って光回線契約を誘導するようなサイトばかりで信用なりません。

一応みんなの回線速度というサイトによるとSoftbankAirの速度は以下のようになっています。

平均Ping値: 50.25ms

平均ダウンロード速度: 43.98Mbps

平均アップロード速度: 6.24Mbps

みんなのネット回線速度(みんそく) | 速度比較が出来る通信速度測定サイト

というわけで今回は回線速度を自動で計測してみました!

本当に満足できなければ契約解除してしまいましょう。

使ったのはこれ。

www.speedtest.net

私はPythonは趣味で使う程度ですがモジュールをインストールすることによりコマンド一つで簡単に速度計測をすることができます!

コード(記事末に載せておきます)を書く→バッチファイル化→タスクスケジューラで15分ごとに計測という流れで計測可能にしました。

いやプログラミングはすごいですねえ。

先週の日曜日に24時間、15分ごとに計測しました。ちなみに月曜日でも結果はほとんど変わらず。

ダウンロード速度 16時に発生する闇の力

ではまずはダウンロード速度からです。

f:id:hyos1-2otuk1-8sytd372:20210525065803p:plain
ダウンロード速度

なんと、16時~深夜1時まで闇の力が発動して10 Mbpsまで落とされるようです。 翌月曜日の速度もこんな感じでした。

多くの人が使っている→回線速度を落とす、という流れではなくあらかじめ回線速度を落としておくという対策を取っているようです。

だって時間もちょうどいいし。。

本当にいきなり落ちているのにびっくりです。

他の時間帯はだいたい40 Mbps 近辺。日曜日ということもあってかたまにめっちゃ遅くなったりしています。

一応10 Mbps あればYoutubeはそこまでストレスなく見られるので微妙な速度設定ですね。

アップロード速度 だいぶ遅い

次はアップロード速度です。

f:id:hyos1-2otuk1-8sytd372:20210525070433p:plain
アップロード速度

こちらは時間関係なくだいたい3Mbps 程度です。みんなの回線速度からの平均値に比べると半分程度。

正直かなり遅いですが、ライブ配信をするわけでもないのでやむ負えないといったところでしょうか。。

まとめ

これが無線インターネットの限界なのでしょう。

闇の力にはびっくりしましたが10 Mbpsあれば動画閲覧含めそこまでストレスにはなりません。

wimaxであった3日で10GBという縛りがないのは非常に魅力的です。

wimaxは闇の力はないのかもしれません、5月契約解除までに1回測定してみますかね。

参考 ソースコード

一応ちゃんと測定しました、ということでPythonのコード掲載

以下の記事を参考にさせていただきました。

qiita.com

import subprocess
import json
import csv
import datetime
’’’
参考 https://qiita.com/sin_tanaka/items/68f18626138f5d1e52a7
プロセスでスピードテストを実行する
’’’
def get_speedtest_result():
    process = subprocess.run(['speedtest','--json'], capture_output=True)
    return json.loads(process.stdout)
’’’
Mbpsに変換
’’’
def bit_to_mbit(bit):
    """
    誤差とかは気にしない感じの作り
    """
    return round(bit / 1024 / 1024,1) #小数点第1位以下を四捨五入
result = get_speedtest_result()
print("Download=",bit_to_mbit(result["download"]),"Mbps", "Upload=",bit_to_mbit(result["upload"]),"Mbps")
’’’
現在時刻を取得、CSVへ記述
’’’
dt_now = datetime.datetime.now()
dt_now_date = dt_now.strftime('%Y/%m/%d')
dt_now_time = dt_now.strftime('%H:%M')
’’’
CSVへ出力
’’’
with open('data.csv', 'a', newline="") as f: #newlineを空欄にしないと1行空いてしまう
    writer = csv.writer(f)
    writer.writerow([dt_now_date,dt_now_time, bit_to_mbit(result["download"]), bit_to_mbit(result["upload"])])