Webブラウザを備えたクライアントから手軽に回線速度測定ができるLibreSpeedを、SONiCで稼働しているイーサネットスイッチで動くようにしました。実稼働のスイッチでは、ネットワークを安定稼働させるための大事な仕事がたくさんありますのでこのようなアプリケーションを稼働させることはまず無いと思いますが簡易的な検証に便利です。

 

sudo apt-get install apache2 php git
sudo git config --global http.sslVerify false
cd /var/www/html
sudo git clone https://github.com/adolfintel/speedtest.git

この状態で"http://host-ip/speedtest/"をアクセスすると、ディレクトリが表示され。example-singleServer-full.html等を選択すれば測定画面が表示されますが。みっともないのでindex.htmlを設定しましょう。

ln -s example-singleServer-full.html index.html

 

チューニング

このままでは高速な帯域測定ができませんので、チューニングが必要です。ファブリックチップとホストCPUの接続帯域に制限されます。TOMAHAWKはPCIe v 2.1 4 lane 16Gbps?。

TRIDENT3/TOMAHAWK3だと PCIe Gen3 x 4 = 32Gbps

MTU

スイッチのインターフェースなので、デフォルト9100。クラインアント側の設定変更が必要になる場合があるでしょう。

TCP

/etc/sysctl.conf

net.ipv4.

/etc/php/7.0/apache2/php.ini

  default recomend
upload_max_filesize 2M 50M
post_max_size 8M  
max_input_time 60  
max_exctution_time 30 90
memory_limit 128M  

https://github.com/librespeed/speedtest/issues/50

speedtest_worker.js

xhr_ul_blob_megabytes : 20

通常は20MBupload。mobileだと4MB

測定結果の蓄積

mysplによる測定結果の蓄積機能もありますが省略。

DNSの設定も省略

nginx上での構築

phpの設定がちょっと面倒

rasberryPiでの測定結果

singel core 700MHz 512MB RAM 100BASE-TX

  download upload
標準状態 Windows PC chrome via 1G-T 36.9Mbps 64.2Mbps
標準状態 iPadPro client chrome via wifi 11a 41.5Mbps 53.5Mbps
php.ini変更iPad Pro 44.1Mbps 50.1Mbps

Rasberry Pi4を使えば1Gbps出るらしい


コメント欄を読み込み中