Ethernet speed

Do you need the speed test to be installed in Kodi, since there are other ways to check internet speed?
You say that with speedtest-cli python version you get bogus results. I’m using similar version and check the speed via terminal with this command:

“curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python”

It gives me pretty consistent and accurate results, although my fiber connection is only a fifth of yours :slight_smile:

1 Like

No, no need to test from Kodi itself.

I will give the python speedtest-cli version a try on this device (CoreElec on Odroid N2+).
I tried the python on an Odroid C2 and results were really inaccurate whereas the C++ version is flawless on it and gives top and consistent results.

Ok, was able to install C++ compiled version on N2+ (with CoreElec).
Upload results are good, but download results are very low:

CoreELEC:~ # ./speedtest -s 23282
Speedtest by Ookla
Server: ORANGE FRANCE - Rennes (id = 23282)
ISP: K-NET SARL
Latency: 21.62 ms (0.08 ms jitter)
Download: 192.62 Mbps (data used: 344.8 MB)
Upload: 928.76 Mbps (data used: 1.1 GB)
Packet Loss: 0.0%

By comparison same test made on the Odroid C2 (that has way lower specs):

root@hestia:~# speedtest -s 23282
Speedtest by Ookla
Server: ORANGE FRANCE - Rennes (id = 23282)
ISP: K-NET SARL
Latency: 21.36 ms (0.14 ms jitter)
Download: 937.08 Mbps (data used: 1.1 GB)
Upload: 927.48 Mbps (data used: 1.0 GB)
Packet Loss: 0.0%

And for info, the python version:

CoreELEC:~ # curl -s https//raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python
Retrieving speedtest net configuration…
Testing from K-NET SARL (xx.xx.xx.xx)…
Retrieving speedtest net server list…
Selecting best server based on ping…
Hosted by iBlooPro (Rennes) [146.03 km]: 21.417 ms
Testing download speed…
Download: 95.70 Mbit/s
Testing upload speed…
Upload: 148.20 Mbit/s Retrieving speedtest net server list…

So python is inaccurate here (for high speed internet), but for compiled version, why are the results so bad for download? The N2+ is way more powerful than C2, so it is not a hardware problem. I use Cat7 Ethernet wires, and iPerf3 between router and CoreElec shows 930+ Mbit/s both ways.

Any clue?

[EDIT]
A reboot helped once (giving close to max speed for download), but it was short lived.

Even more reboots are not improving.

Tried also the commands suggested earlier in this thread (even with higher values), for some reason, CoreElec setup is slowing down internet download speed a lot.

No clue what is happening.

CoreELEC:~ # sysctl -w net.core.wmem_default=851968
net.core.wmem_default = 851968
CoreELEC:~ # sysctl -w net.core.rmem_default=851968
net.core.rmem_default = 851968
CoreELEC:~ # sysctl -w net.core.rmem_max=851968
net.core.rmem_max = 851968
CoreELEC:~ # sysctl -w net.core.wmem_max=851968
net.core.wmem_max = 851968
CoreELEC:~ # nice -n -20 ./speedtest -s 31993
Speedtest by Ookla
Server: SFR - Trappes (id = 31993)
ISP: K-NET SARL
Latency: 7.76 ms (0.10 ms jitter)
Download: 385.78 Mbps (data used: 477.6 MB)
Upload: 940.77 Mbps (data used: 785.6 MB)

Also had the same experience coming from Vero4k+, that download speeds were disastrous on N2+ with wired ethernet.

What fixed it for me is forcing settings with ethtool and disabling auto-negotiation. SSH into CE and use the following command:

ethtool -s eth0 speed 1000 duplex full autoneg off

Seems the Odroid N2+ ethernet adapter/driver doesn’t play nice with certain network hardware when autonegotiating. Would be interested to see your results after the command. Thanks.

Turns out it was actually something else I did:

Generate file sysctl.conf in /storage/.config/sysctl.d/ with the following two lines:

net.ipv4.tcp_sack=1
net.ipv4.tcp_mtu_probing=1

This change is boot persistent (and might revert some hardening).