Slow ethernet iperf3 speeds until reboot

sudo apt install ethtool

osmc@Vero:~$ sudo ethtool -a eth0
Pause parameters for eth0:
Autonegotiate:  on
RX:             off
TX:             off
RX negotiated:  off
TX negotiated:  off

osmc@Vero:~$ sudo ethtool -S eth0 | grep -v 0$
NIC statistics:
     mmc_rx_framecount_gb: 753
     mmc_rx_octetcount_gb: 177162
     mmc_rx_octetcount_g: 177162
     mmc_rx_broadcastframe_g: 313
     mmc_rx_multicastframe_g: 91
     mmc_rx_64_octets_gb: 371
     mmc_rx_65_to_127_octets_gb: 252
     mmc_rx_128_to_255_octets_gb: 34
     mmc_rx_512_to_1023_octets_gb: 8
     mmc_rx_1024_to_max_octets_gb: 78
     mmc_rx_unicast_g: 349
     mmc_rx_ipc_intr_mask: 2147385342
     mmc_rx_ipv4_nopay: 1
     mmc_rx_ipv4_gd_octets: 149054
     mmc_rx_ipv4_nopay_octets: 46
     mmc_rx_ipv6_gd_octets: 368
     mmc_rx_ipv6_gd: 4
     mmc_rx_udp_gd: 273
     mmc_rx_tcp_gd: 177
     mmc_rx_icmp_gd: 4
     mmc_rx_udp_gd_octets: 24254
     mmc_rx_icmp_gd_octets: 208
     threshold: 64
     tx_pkt_n: 363
     rx_pkt_n: 753
     normal_irq_n: 521
     rx_normal_irq_n: 516
     napi_poll: 521
     tx_normal_irq_n: 5
     tx_clean: 712
     tx_reset_ic_bit: 358
     irq_rgmii_n: 1

There are no errors. I suspect the switch to go into power-save mode and lower the interface speeds.

1 Like

Where is the switch?

OK, iptv.merge is not the problem.

ethtool:

~$ ~#
The following connections are open:
#0 client-session (t4 r0 i0/0 o0/0 fd 4/5 cc -1)
sudo ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: off
TX: off
RX negotiated: on
TX negotiated: on

osmc@osmc:~$ ~#
The following connections are open:
#0 client-session (t4 r0 i0/0 o0/0 fd 4/5 cc -1)
sudo ethtool -S eth0 | grep -v 0$
NIC statistics:
mmc_rx_framecount_gb: 5848871
mmc_rx_octetcount_gb: 3822715461
mmc_rx_octetcount_g: 3822715461
mmc_rx_broadcastframe_g: 58802
mmc_rx_multicastframe_g: 85172
mmc_rx_64_octets_gb: 342262
mmc_rx_65_to_127_octets_gb: 114397
mmc_rx_128_to_255_octets_gb: 18067
mmc_rx_256_to_511_octets_gb: 27211
mmc_rx_512_to_1023_octets_gb: 19405
mmc_rx_1024_to_max_octets_gb: 5327529
mmc_rx_unicast_g: 5704897
mmc_rx_ipc_intr_mask: 1073692671
mmc_rx_ipv4_gd: 5833486
mmc_rx_ipv4_nopay: 2364
mmc_rx_ipv4_gd_octets: 3714766891
mmc_rx_ipv4_nopay_octets: 108744
mmc_rx_udp_gd: 150779
mmc_rx_tcp_gd: 5682705
mmc_rx_icmp_gd: 2
mmc_rx_udp_gd_octets: 17456406
mmc_rx_tcp_gd_octets: 3580640693
mmc_rx_icmp_gd_octets: 72
threshold: 64
tx_pkt_n: 1098194
rx_pkt_n: 5848871
rx_normal_irq_n: 500497
tx_normal_irq_n: 25508
tx_clean: 570057
tx_reset_ic_bit: 1069812
irq_rgmii_n: 1

@sam_nazarko

do I have one of the boxes with the dodgy ethernet? I seem to have exhausted everything else.

If it was from an early batch of Vero4K+ devices, then itā€™s possible. When did you buy it?

It was december 2018

There is no switch between my router and the Vero.
I only have a switch between my router and my PC, from which I am running the SSH commands.

If your device is affected, then the TX direction will be affected only. It will always be affected and not after some time.

If a reboot fixes it, it canā€™t be a hardware issue.

Any idea why I only get the drops when running OSMC?
As said before, I get no drops on my Pi running plain Raspbian.
But when I installed OSMC on another SD card on my Pi, I got the same drops as on the Vero.

Nothing obvious that I can think of. The connection manager is different to Raspbian however. But I donā€™t think the drops are your issue.

Let it run for a while, and check if the drop counter is increasing. Usually the initial drops happens on a reboot when external devices still try to access it, but the endpoint does not exist anymore.

I have another question. If I run iperf3 without any additional parameters on the client side I get around 947 Mbit/s which is the maximum on Gbit LAN.
But if I run it on UDP protocol I only get aroung 70 Mbit/s. Is this normal?

Command on my Windows machine:

.\iperf3.exe -s

TCP test:

osmc@Vero:~$ iperf3 -c 192.168.178.21
Connecting to host 192.168.178.21, port 5201
[  4] local 192.168.178.25 port 33875 connected to 192.168.178.21 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   113 MBytes   943 Mbits/sec    0    269 KBytes
[  4]   1.00-2.00   sec   113 MBytes   947 Mbits/sec    0    269 KBytes
[  4]   2.00-3.00   sec   113 MBytes   946 Mbits/sec    0    269 KBytes
[  4]   3.00-4.00   sec   113 MBytes   944 Mbits/sec    0    269 KBytes
[  4]   4.00-5.00   sec   113 MBytes   947 Mbits/sec    0    269 KBytes
[  4]   5.00-6.00   sec   113 MBytes   946 Mbits/sec    0    269 KBytes
[  4]   6.00-7.00   sec   113 MBytes   946 Mbits/sec    0    269 KBytes
[  4]   7.00-8.00   sec   113 MBytes   947 Mbits/sec    0    269 KBytes
[  4]   8.00-9.00   sec   113 MBytes   947 Mbits/sec    0    269 KBytes
[  4]   9.00-10.00  sec   113 MBytes   947 Mbits/sec    0    269 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.10 GBytes   946 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.10 GBytes   945 Mbits/sec                  receiver

iperf Done.

UDP test:

osmc@Vero:~$ iperf3 -c 192.168.178.21 -u -b 1000M
Connecting to host 192.168.178.21, port 5201
[  4] local 192.168.178.25 port 40386 connected to 192.168.178.21 port 5201
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.00   sec  7.61 MBytes  63.8 Mbits/sec  974
[  4]   1.00-2.00   sec  8.57 MBytes  71.9 Mbits/sec  1097
[  4]   2.00-3.00   sec  8.43 MBytes  70.7 Mbits/sec  1079
[  4]   3.00-4.00   sec  8.59 MBytes  72.0 Mbits/sec  1099
[  4]   4.00-5.00   sec  8.31 MBytes  69.7 Mbits/sec  1064
[  4]   5.00-6.00   sec  8.59 MBytes  72.1 Mbits/sec  1100
[  4]   6.00-7.00   sec  8.41 MBytes  70.5 Mbits/sec  1076
[  4]   7.00-8.00   sec  8.58 MBytes  72.0 Mbits/sec  1098
[  4]   8.00-9.00   sec  8.51 MBytes  71.4 Mbits/sec  1089
[  4]   9.00-10.00  sec  8.66 MBytes  72.7 Mbits/sec  1109
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-10.00  sec  84.3 MBytes  70.7 Mbits/sec  0.053 ms  0/10783 (0%)
[  4] Sent 10783 datagrams

iperf Done.

Any idea whatā€™s going on?

Did you test with iperf?

me? Iā€™m not following - this whole thread is about my iperf results dropping from 1Gig levels to around 150-200mb in (now) a short period of time. on both tx and rx if thatā€™s what you mean.

The only thing that will fix the speeds is a reboot, or now we find, disabling the deviceā€™s wired ethernet and reenabling. Pulling cables does nothing, rebooting all the other network switches/routers etc does nothing. Itā€™s pretty clear the device itself is slowing down for some reason?

I wouldnā€™t get too hung up on those UDP figures, which I donā€™t believe are relevant to your problem. I have a non-plus Vero4K and see similar UDP figures, though the reverse figures seem fine. It looks to me like an iperf3-specific issue.

Iā€™m interested to see if the speed degradation you see occurs rapidly or gradually over time.

If cron isnā€™t already installed, please install it and then run crontab -e. (It might ask you which editor you want to use.) Then add/save this line:

*/15 * * * * /usr/bin/iperf3 -V -c 192.168.178.21 -i 0 --logfile /home/osmc/ip3.out >/tmp/ip3.log 2>&1

This will run an iperf3 every 15 minutes. Let it run overnight, preferably starting after a reboot. Assuming that thereā€™s been a slowdown, you can upload the file with paste-log /home/osmc/ip3.out.

Iā€™m trying to keep track of both @floatingkiwi and @Ainsleyā€™s issues.