ラズパイでインターネットの速度テストをするには「speedtest-cli」を使うと便利です。特にデスクトップ環境がないRaspbian liteで重宝します。
ラズパイからネットの速度計測をするならコマンド1つですので試してみてください。
今回は「Raspbian Buster」フルパッケージ版をインストールして行いました。
使用した機器
有線LANポートと無線LANポートをそれぞれ計測しました。
Raspberry Pi Zero Wなので有線LANポートはUSBハブ(hub)を利用しています。
コレを使いました。
これはだいぶ以前に購入したので現在はUKで購入出来る程度だと思います。
speedtest-cliのダウンロードと使用方法
色んな導入方法がありますが、今回はダウンロードして実行の方法を取ります。他にはgitcloneやpipでのインストールなどがあります。
詳しくはツールのgithubで確認してください。オプションも載っています。
参考:https://github.com/sivel/speedtest-cli
Downloadフォルダなど適当な場所で以下を実行してダウンロードします。
wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
実行権を与えます。
chmod +x speedtest-cli
使ってみます。
./speedtest-cli
Retrieving speedtest.net configuration...
Testing from XXXXXXXXXXX...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by XXXXXXXXXXXXX [XX.X km]: XX.XXX ms
Testing download speed................................................................................
Download: 42.56 Mbit/s
Testing upload speed................................................................................................
Upload: 39.78 Mbit/s
このようにダウンロード速度とアップロード速度が調べられます。(※計測場所はひかり接続で基地局からも近いので速い方だと思います。)
ネットワークインターフェイスを調べる
有線LANを調べてみます。LANケーブル接続状態です。ethtool を使います。
ちなみにRaspbian Buster フルパッケージには、ethtool とnet-tools は最初からインストールされています。
ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Link partner advertised pause frame use: Symmetric
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 32
Transceiver: internal
Auto-negotiation: on
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0x00007fff (32767)
drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
Link detected: yes
これで見る限り、Raspberry Pi Zero Wの有線LANポートは、100Mb/sで繋がっており、Duplex: Fullとあるので、一応最大速度になっています。Raspberry Pi Zero WのLANポートは10Mb/sか100Mb/sです。
Wi-Fiの場合
Wi-Fiの場合はethtool eth0ではなくiwconfig
iwconfig wlan0
driverなどの情報を出すならethtool でも使います。
ethtool -i wlan0
他にもネットワークで使うコマンド
ipアドレスが分かりますね。
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:~ ff:ff:ff:ff:ff:ff
inet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute wlan0
valid_lft forever preferred_lft forever
inet6 ~/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 290sec preferred_lft 290sec
inet6 ~/64 scope link
valid_lft forever preferred_lft forever
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:~ brd ff:ff:ff:ff:ff:ff
inet 192.168.0.8/24 brd 192.168.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 ~/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 290sec preferred_lft 290sec
inet6 ~/64 scope link
valid_lft forever preferred_lft forever
lsusbデバイス情報(チップ名)など分かります。
lsusb
Bus 001 Device 003: ID 0bda:8152 Realtek Semiconductor Corp. RTL8152 Fast Ethernet Adapter
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
この辺りがよく使います。あまり長くないコマンドなので、オプションは別にしても覚えられるでしょう。
- lsusb
- ip a
- ethtool
- iwconfig
SSDドライブ起動させたRaspberry Pi 4 サクサクと愛用中!
コスパが抜群のSSDドライブは内蔵型でいい
Crucial SSD 480GB BX500 SATA3 内蔵2.5インチ 7mm
Raspberry Pi4はメモリー8GBモデルなら余裕
【国内正規代理店品】Raspberry Pi4 ModelB 8GB 技適対応品
USBブートの構築方法を実践
ラズパイ4をUSB接続のSSDから起動する方法(USBブート)
遅いなと思ったら・・・
Raspberry Pi Zero WでUSBハブを使ったネットの速度が遅いというコメントをいただきました。
別の記事のコメントでしたが、そちらで3Mb/sしか出ていないようです。
今回のようにUSB2.0のハブを用いて接続しています。LANポート付きのUSBハブです。
LANアダプターと言いますが、もしかしたら破損しているかも知れません。遅くても通信は出来ているので、完全におかしいということではなく、搭載チップの不良なのかな?
LANアダプターもチャチな物が多いので、交換できると分かり易いですね。
問題の切り分け
こういうトラブルって明確な答えはなかなか見つかりません。
しかし、問題を切り分けることで原因に迫ることも可能です。
過去にサーバーの資格を取得し業務での経験から、先ずはハードを疑うか、ソフトを疑うかになるでしょう。
仮にハードからと考えるなら、できれば同じ製品の別個体で同じように比べてみるのが早いです。・・・しかし、個人だとなかなか難しいですね。
次にこのLAN関係なら、LANケーブルを新品に交換するというのも有効です。
意外と知られていませんが、LANケーブルは劣化が激しい物もあります。少なくても経年劣化はあります。更に、LANケーブルを踏んづけていたり、曲げていたりする場合、そこで断線することもあります。
完全に通信が出来ないなら分かり易いのですが、不安定な場合も先ずはLANケーブルの交換をオススメします。いきなり治るというか症状が消えることも多々ありました。
他にもインターネット接続の話ならば、ルーターのファームウェアバージョンが古いことも影響することがあります。もしもバージョンアップできるならしてみるのも手です。
対処法
- LANケーブルを新品に交換する(短い方がいい)
- ルーターのファームウェアを更新してみる(できれば)
- 別個体の同じ製品で同じように試してみる
他にもルーターの設定、ラズパイならラズパイの通信設定も関係がある場合があります。
もしかして?! Raspberry Pi Zero W 自体の不良も考えられるので、色んな機器を取替ながら試してみて、消去法で1つに絞ると解決策を検索しやすくなります。
ネットワーク関係は環境に依る部分も大きく、メールや電話で伺っても分からないことが多いと思います。一体、どこまでが正常なのかを逆説的に証明していく消去法で対処するしかないのかなーと思っています。
もちろん、ネットワークエンジニアさんであれば、一発で原因解明する?かも知れません。
CUI環境でspeedtest-cliを使ったネットのスピードテストのお話でした。
コメント ご感想をお願いします。
ルーターのルーティングテーブルのキャッシュがいっぱいになると、アドレス変換やDHCPの割り当てがうまくいかない遅くなったりつながらなくなったりすることもあります。また、ISPからのスタティックIP割り当てがおかしくなったりなど。繋がらない場合は結構これが原因だったりします。
またSwiching Hubは内部にルーティングテーブルを持っているので、安物だとリフレッシュ機能がなく、ずっと使っているとルーティングテーブル(Hubの搭載メモリ量により変化)いっぱいになり毎度IPのありかを上位のルーターに聞きに行くので少し遅くなります。
一度すべてDCジャックを抜いて【ICU(光)→ルーター→SW-Hub→Computer/スマホのWiFi or LAN 再接続】で治すことが出来る場合あります。