Ethernet speed

Are those sustained speeds, or max speeds? If it’s bursting (vs consistent), you might get higher test numbers, but not actually be getting data faster.

iperf3
at first the speed increases and getting up to 900+ and maintains in that region throughout the test. Is this what you meant?

Now am sure that the ethernet port is not the issue. Just internet speed thats been bothering me, its like being capped to under 400mbps download speed.

Plus, with upnp turned on within the settings, the n2 usually needs to be restarted to get the upnp up. Without upnp up, internet download speed is only around 50-60+mbps (less than 100mbps).

Can you try to run UDP test with iperf3 again?

Also please do UPNP test after running these commands.

sysctl -w net.core.wmem_default=425984
sysctl -w net.core.rmem_default=425984
sysctl -w net.core.rmem_max=425984
sysctl -w net.core.wmem_max=425984

After writing the command without restarting the n2, internet download speed less than 100mbps.

After restarting, looks good. 400+mbps even after waking up from suspend. Before this, after waking up from suspend, most of the time, n2 restart is required to enable again the upnp.

Will monitor this for few days to see if the problem still there. Thanks

Also will update on the UDP test later.

iperf3 udp test - iperf3 -c ipaddress -u -b 1000m
what numbers should i be looking at?

after running the test

  1. n2 as server / laptop as client
    full speed

  2. laptop as server / n2 as client
    less than 20mbps

Would you let me know the MAC address of your ODROID-N2?

mac add - 00-1E-06-42-39-E7

Did i do the udp iperf3 correctly? Am very new to all of this.

Internet speed looking good now. 400+

Currently on nightly, after latest update, upnp behaves like before, most of the time after waking up from suspend, restarts required to re enable the upnp again.

Should i run the again these command again?

sysctl -w net.core.wmem_default=425984
sysctl -w net.core.rmem_default=425984
sysctl -w net.core.rmem_max=425984
sysctl -w net.core.wmem_max=425984

If you do not have a performance issue you don’t need to set them up again. But you can check what the default value after rebooting like sysctl net.core.wmem_default.

Performance good. Just that the upnp behaves like before.

The command for UDP itself is fine, I hope you have done UPNP test after applying the settings given earlier by me if it makes different. I’ve observed that improve the UDP performance with certain device.

The Speed Tester Add-On is inaccurate.

The best would be to have an addon (maybe in network tools) that would install speedtest cli version (official C++ version from Ookla, not the python that is also inaccurate).

With an Odroid C2 running either Armbian or Hardkernel’s Ubuntu, I get 940 Mbit/s both way (I have symmetrical Gbit/s internet) with official speedtest C++ from ookla apt Repo.
From an Odroid N2+ with CoreElec on the exact same network, the Speed Tester shows 500 Mbit/s down and 100 Mbit/s up… iPerf3 to the router shows 940 Mbit/s both ways.
I am sure that if I could run speedtest on CoreElec, I would get 940 Mbit/s as well.

Official speedtest cli: https://www.speedtest.net/apps/cli
Question : is it possible to install it on CoreElec? Probably by including it in its own addon or into the Network Utils Addon?

You can use forum search to find the answer :wink:

Thank you.
I certain will look into installing Entware, great initiative!

The speedtest-cli you are mentioning though is the python version, and it gave me bogus results when I used it on an Odroid C2.

Apparently, it is possible to download the official C++ compiled version binary from Ookla (outside of apt manager). I will try this as well.

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:

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).