Advice on slow eth0 rx speed on Rpi3B v1.2

This obviously isn’t a Dietpi-specific issue, but I’m hoping one of you pros might take mercy on me and pass along any thoughts you have on my issue.

My Rpi running Dietpi is connected via ethernet to an ethernet switch that is in turn connected to my Asus RT-AX92U router, which itself is connected to my cable modem. I have 300/30 speed internet, and I get this speed consistently on the MacBook that’s connected in the same setup as the pi.

I know that the pi is splitting the network bus on the pi3b between USB and ethernet, so I’m not expecting to get the full download speed. But this is typical of my speedtest result:

Idle Latency:    28.47 ms   (jitter: 1.07ms, low: 27.82ms, high: 30.13ms)
    Download:    23.74 Mbps (data used: 21.8 MB)                                                   
                 29.53 ms   (jitter: 3.34ms, low: 23.28ms, high: 40.84ms)
      Upload:    24.77 Mbps (data used: 47.0 MB)                                                   
                 43.17 ms   (jitter: 9.15ms, low: 27.81ms, high: 490.25ms)
 Packet Loss:     0.0%

Here’s what appears to be the eth-relevant bit from dmesg:

6.719854] smsc95xx 1-1.1:1.0 eth0: Link is Down
[    8.863698] smsc95xx 1-1.1:1.0 eth0: Link is Up - 100Mbps/Full - flow control off

In my research, some folks have recommended trying a gig ethernet to USB3 dongle in place of the stock eth port; results there look mixed, but I’m willing to give that a shot in the interest of due diligence.

Other posts suggest enabling flow control is the first step, but I haven’t yet figured out where to enable that; I’m not seeing a likely option in the Asus settings…

Anyway, I’d really appreciate any thoughts you may have on this matter. Thanks a lot!

Do you see any CPU overutilization when you run the speedtest in top or htop? Could be also the sirq or iowait.

I’m not sure what would qualify as “overutilization,” but CPU% peaked briefly at ~30% during the download portion of test and never got above 10% during the download portion.

Hrm. Well, I hooked up the USB3 → gigabit Ethernet dongle, added an entry for eth1 in /etc/network/interfaces, and now speedtest reports:

Idle Latency:    26.94 ms   (jitter: 1.25ms, low: 26.19ms, high: 27.79ms)
    Download:    71.28 Mbps (data used: 87.8 MB)                                                   
                 28.43 ms   (jitter: 3.19ms, low: 23.22ms, high: 37.59ms)
      Upload:    24.41 Mbps (data used: 47.7 MB)                                                   
                 42.35 ms   (jitter: 9.48ms, low: 28.00ms, high: 493.70ms)
 Packet Loss:     0.0%


Also, download test in SAB went from ~7 MB/s → ~12MB/s. HTOP showed SAB briefly peaking at 155% CPU during the 100MB download.

I tried a speedtest on mine:

dietpi@raspi:[~]$ speedtest 
Retrieving configuration...
Testing from XXXNET s.r.o. (XXX.XXX.XXX.117)...
Retrieving server list...
Selecting best server based on ping...
Hosted by YellowNET, s. r. o. (Senica) [76.97 km]: 30.502 ms
Testing download speed................................................................................
Download: 92.51 Mbit/s
Testing upload speed......................................................................................................
Upload: 84.42 Mbit/s
dietpi@raspi:[~]$ cat /sys/firmware/devicetree/base/model 
Raspberry Pi 3 Model B Rev 1.2

Not terrible, not perfect. Didn’t stress too much the CPU, and there was slight sirq.

1 Like

Can/should I have 2 eth interfaces active at the same time? I’m noticing now…as I continue testing, that merely unplugging my ethernet cable from the ethernet jack on the pi and plugging it into the dongle doesn’t give me a connection. Here’s what my two eth sections look like in interfaces:

# Ethernet
allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug eth1
iface eth1 inet dhcp

Do I need to disable eth0 if I want eth1 to be my sole/primary ethernet connection?

ip route output:

dietpi@DietPi:~$ ip route
default via dev eth0 dev eth0 proto kernel scope link src dev eth1 proto kernel scope link src linkdown

usually there should be no need to disable an adapter if not connected.

1 Like

I think what was throwing me, now that I look at that ip route output again, is that once I unplugged my ethernet cable from the ethernet jack and plugged it into the dongle, my pi was no longer reachable at So I suppose I either need to configure a static IP somewhere or just change all my urls to my arr apps.

Yes you get a different IP address on the USB adapter. This is normal as it has different MAC address and your DHCP don’t know about you just switching cables. For the DHCP it is a new device. And yes you could try to configure STATIC IP. But it would need to be out of range of your DHCP server to avoid IP address conflict.

1 Like

Thanks for your reply, @Joulinar . I appreciate your time.

You should not be using two different interfaces with IPs from the same network, unless you know what you are doing. It might be better idea to bridge them if you must have them both working at the same time.

1 Like

Yeah, I don’t need both active. Just the one via the dongle. When I unplug ethernet from the ethernet port and switch it to the dongle, I then can’t hit the pi via ssh at the address it’s now showing on my router ( Maybe I’ll do a restart on the pi and see how things look.

EDIT: And no, I don’t know what I’m doing, in case you couldn’t tell. :wink:

The IP of the USB dongle will be a different one than the on-board Ethernet. This will not change on reboot. Both Ethernet device have a different MAC address and will identify differently on your router. You need to go with STATIC IP if you like to have same IP or tell the router to assign the original IP to USB Ethernet adapter.


Hot swapping didn’t work, but a reboot got everything straightened out. I also took this opportunity to attach an SSD drive to the pi to use for my SAB incomplete folder…we’ll see how that goes. Thanks again for all the hand holding!

1 Like