web-dev-qa-db-ja.com

speedtest-cliは非常に遅いが、ネットワーク速度は問題ない

ここで奇妙な問題が発生しています。私のローカルホームサーバー(Debian 9.9)では、speedtest-cliとpython=ペンダントがひどく遅くなっています。これを使用してISP接続の安定性を監視しているので、これは問題です。

私の最初の考えは、私のサーバーまたは一般にスピードテストに問題があると思いましたが、ここから楽しい部分が始まります。

ルーターに直接接続されたPC(Windows 10)からのSpeedtest:

fast.com 370 Mbit/s 
speedtest.net(server 15819) 242 Mbit/s down, 50,78 Mbit/s up

ルーターに直接接続されたノートブック(Arch Linux)からのSpeedtest:

fast.com 310 Mbit/s
speedtest.net(server 15819) 240 Mbit/s down, 50,8 Mbit/s up.

これまでのところ良好ですが、Debianサーバーに関しては、ルーターに直接接続されています。

speedtest-cli(server 15819) 3,88 Mbit/s down, 3,69Mbit/s up

したがって、サーバーが壊れている可能性があります...しかし、いいえ、接続速度は問題ありません。

wget --output-document=/dev/null https://cdimage.debian.org/debian-cd/current/AMD64/iso-cd/debian-9.9.0-AMD64-netinst.iso

leads to a download speed of about 200 Mbit/s.

ルータで直接Speedtestを実行すると、約250 Mbit/sになります。

私はすでにspeedtest-cliをprugingし、サーバーを再起動するなどを試みました。

ここで何が起こっているのでしょうか?コマンドラインのspedtestはこの壮大な失敗に終わりますが、残りのネットワーク設定は問題ありません。

1
r4ptor

私はこれをいじっていました-そして、speedtest-cliとspeedtest ++がインストールされています。 (残念ながら、私のGUI PCはhomeplug接続の背後にありますが、残りの部分を言うときは私を信頼してください)。おそらく、使用されているプロトコルに依存します。

これは、Ubuntu16.04のリポジトリ内のバージョンの結果です。

geek@heckate_router:/etc$ speedtest-cli
Retrieving speedtest.net configuration...
Testing from Singtel Fiber (XXX.XXX.XXX.XXX)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Singtel (Singapore) [3.91 km]: 230.77 ms
Testing download speed................................................................................
Download: 648.47 Mbit/s
Testing upload speed......................................................................................................
Upload: 3.15 Mbit/s

興味深いことに、gitのバージョンはアップロードの結果が優れていますが、speedtest ++とooklaのスピードテストcliの結果とはまだ一致していません。

geek@heckate_router:~/speedtestgittest$ ./speedtest_cli_git.py
Retrieving speedtest.net configuration...
Testing from Singtel Fiber (xxx.xxx.xxx.xxx)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by MyRepublic (Singapore) [3.91 km]: 233.882 ms
Testing download speed................................................................................
Download: 607.12 Mbit/s
Testing upload speed................................................................................................
Upload: 59.29 Mbit/s

speedtest-CLI github ページのとおり

このツールがSpeedtest.netと矛盾する結果を報告する可能性があります。潜在的な不整合の要因を認識するためのいくつかの概念があります。

Speedtest.netは、HTTPベースのテストではなく純粋なソケットテストの使用に移行しました

Ooklaもそれを認識しているようです

パフォーマンス-すべてのオープンソースバージョンは、Flashテストよりも前の古いバージョンのテストエンジンを使用しています。ええ、それは古いです。これは高速接続には理想的ではありません。また、DNSのタイミングやその他のあらゆる種類の方法論の問題の影響を受ける人気のあるバージョンも確認しています。さらに、ほとんどの言語は高水準言語で記述されているため、通常、高帯域幅レベルに到達するのに問題があります。

プロトコルか言語かを判断するには、過度に深いパフォーマンスプロファイリングが必要だと思いますが。

私はこの回答を最初に書いた後約5分まで speedtest ++ を使用しており、結果はより良くロードされています。

geek@heckate_router:~$ SpeedTest

Speedtest ++

SpeedTest++ version 1.14
Speedtest.net command line interface
Info: https://github.com/taganaka/SpeedTest
Author: Francesco Laurita <[email protected]>

IP: XXX.XXX.XXX.XXX ( Singtel Fiber ) Location: [<redacted>, <redacted>]
Finding fastest server... 9575 Servers online
............
Server: Singapore speedtest.singnet.com.sg:8080 by Singtel (3.91278 km from you): 1 ms
Ping: 1 ms.
Jitter: 0 ms.
Determine line type (2) ........................
Fiber / Lan line type detected: profile selected fiber

Testing download speed (32) ................................................................................................................................................................................................................................................................................................
Download: 989.61 Mbit/s
Testing upload speed (12) .................................................................................................................................................................................................................................................................................................................................................................................................................................................
Upload: 998.73 Mbit/s

これを 公式クライアント と比較してください(そして彼らのブログは誰かがあなたのために過去の速度を監視するためのアプリを書いたことを示唆しています)そしてCSVとTSV出力を行います

geek@heckate_router:~$ speedtest

   Speedtest by Ookla

     Server: Singtel - Singapore (id = 13623)
        ISP: Singtel Fiber
    Latency:     1.91 ms   (0.05 ms jitter)
   Download:   932.83 Mbps (data used: 479.6 MB)
     Upload:   941.23 Mbps (data used: 424.7 MB)
Packet Loss:     0.0%
 Result URL: <redacted>

あなたが言うことができるように...速度は実質的に異なります。

私がそれを台無しにしたとき、私はguiテストがcliテストに匹敵することを思い出します。

Speedtest ++と公式クライアントは、lineの速度を見つける際に、古いプロトコルよりもうまく機能するrawソケット/カスタムプロトコルを使用します。

4
Journeyman Geek

開発者はそのような要求にすでに打ちのめされているようですので、これらの行をgithubのreadmeに投稿してください:

Pythonのバージョンが異なると、コードの特定の部分が他のバージョンよりも高速に実行されます。CPUとメモリの容量と速度は、Speedtest.netと同じネットワーク上の他のマシン間でも、一貫性のない部分で大きな役割を果たします。不整合に関連する問題は、追加の理由やコンテキストなしで、修正なしでクローズされます。

したがって、ここでの解決策は、安定した強力なRAM/CPUボックスで非Pythonベースのベンチマークを使用することです。グーグルは私に解決策の1つを示しました: https://github.com/taganaka/SpeedTest でのc ++ベースのCLI速度テスト

2
Varrah

speedtest-cliは完全に壊れており、非常に不正確な結果を報告します。GitHubの開発者「sivel」は、この問題に関してGitHubに提出された数十の問題のいずれにも対処することを断固として拒否し、コメントなしでこれらの問題を即座に閉じてロックします。

1
Spongman

Aptからspeedtest-cliをインストールしたと思います。そのため、古い壊れたバージョンをプルします。

Speedtest-cliの最新バージョンを使用してみてください

wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod +x speedtest.py
./speedtest.py
0
Seandex