When downloading with SabNZB on my raspberry pi 4b 8gb (dietpi 7.2) with cable I get around 19mb/s.
This corresponds with a raw speedtest using:
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by ***** [***.50 km]: 33.61 ms
Testing download speed................................................................................
Download: 153.44 Mbit/s
Testing upload speed................................................................................................
Upload: 36.14 Mbit/s
However, my home internet connection is 600Mb and the raspberry is plugged directly into the router.
On my PC SabNZB peaks around 64mb/s.

My questions is: Is this a limitation of my Rpi4b or am I missing something? I could not find a definitive answer on the forums and it seems like it should be able to get a higher speed.
Edit for clarification:
I don’t use a VPN, Pi-hole or any alternate DNS config.
just a short question. Do you use a VPN connection to connect to the internet?
No. No VPN or PiHole or alternate DNS config.
do you have a 2nd Linux box close to your DietPi device? If yes, you could measure the network speed using iperf3. This should give an indication if the Pi4 is working as expected.
I did a small test between a RPi4B and a VM
root@DietPiProd:~# iperf3 -c 192.168.0.13
Connecting to host 192.168.0.13, port 5201
[ 5] local 192.168.0.11 port 48006 connected to 192.168.0.13 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 112 MBytes 937 Mbits/sec 0 1010 KBytes
[ 5] 1.00-2.00 sec 112 MBytes 937 Mbits/sec 0 1.20 MBytes
[ 5] 2.00-3.00 sec 109 MBytes 912 Mbits/sec 0 1.79 MBytes
[ 5] 3.00-4.00 sec 110 MBytes 923 Mbits/sec 0 1.88 MBytes
[ 5] 4.00-5.00 sec 112 MBytes 944 Mbits/sec 0 1.31 MBytes
[ 5] 5.00-6.00 sec 112 MBytes 944 Mbits/sec 0 1.49 MBytes
[ 5] 6.00-7.00 sec 111 MBytes 933 Mbits/sec 0 1.49 MBytes
[ 5] 7.00-8.00 sec 109 MBytes 912 Mbits/sec 0 1.71 MBytes
[ 5] 8.00-9.00 sec 111 MBytes 933 Mbits/sec 0 1.78 MBytes
[ 5] 9.00-10.00 sec 111 MBytes 933 Mbits/sec 0 1.78 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.08 GBytes 931 Mbits/sec 0 sender
[ 5] 0.00-10.01 sec 1.08 GBytes 928 Mbits/sec receiver
iperf Done.
root@DietPiProd:~#
For me it gives full speed
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.08 GBytes 931 Mbits/sec 0 sender
[ 5] 0.00-10.01 sec 1.08 GBytes 928 Mbits/sec receiver
My apologies for the delayed answer.
I tested this using a second raspberry pi 4b (2gb) with the latest Dietpi.
root@DietPi:~# iperf3 -c 192.168.1.137
Connecting to host 192.168.1.137, port 5201
[ 5] local 192.168.1.30 port 37292 connected to 192.168.1.137 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 111 MBytes 934 Mbits/sec 0 465 KBytes
[ 5] 1.00-2.00 sec 111 MBytes 928 Mbits/sec 0 465 KBytes
[ 5] 2.00-3.00 sec 108 MBytes 902 Mbits/sec 0 386 KBytes
[ 5] 3.00-4.00 sec 109 MBytes 911 Mbits/sec 0 404 KBytes
[ 5] 4.00-5.00 sec 108 MBytes 908 Mbits/sec 0 462 KBytes
[ 5] 5.00-6.00 sec 108 MBytes 905 Mbits/sec 0 462 KBytes
[ 5] 6.00-7.00 sec 108 MBytes 908 Mbits/sec 0 484 KBytes
[ 5] 7.00-8.00 sec 86.2 MBytes 723 Mbits/sec 1 525 KBytes
[ 5] 8.00-9.00 sec 109 MBytes 911 Mbits/sec 0 525 KBytes
[ 5] 9.00-10.00 sec 109 MBytes 912 Mbits/sec 0 525 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.04 GBytes 894 Mbits/sec 1 sender
[ 5] 0.00-10.00 sec 1.04 GBytes 892 Mbits/sec receiver
As you can see the internal network speed should not be a problem.
Connecting from the 4b8gb to the 4b2gb resulted in the following:
root@DietPi:~# iperf3 -c 192.168.1.30
Connecting to host 192.168.1.30, port 5201
[ 5] local 192.168.1.137 port 37648 connected to 192.168.1.30 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 111 MBytes 935 Mbits/sec 0 406 KBytes
[ 5] 1.00-2.00 sec 112 MBytes 937 Mbits/sec 0 406 KBytes
[ 5] 2.00-3.00 sec 112 MBytes 943 Mbits/sec 0 486 KBytes
[ 5] 3.00-4.00 sec 112 MBytes 940 Mbits/sec 0 486 KBytes
[ 5] 4.00-5.00 sec 112 MBytes 939 Mbits/sec 0 486 KBytes
[ 5] 5.00-6.00 sec 112 MBytes 940 Mbits/sec 0 486 KBytes
[ 5] 6.00-7.00 sec 112 MBytes 939 Mbits/sec 0 486 KBytes
[ 5] 7.00-8.00 sec 112 MBytes 939 Mbits/sec 0 486 KBytes
[ 5] 8.00-9.00 sec 112 MBytes 940 Mbits/sec 0 486 KBytes
[ 5] 9.00-10.00 sec 112 MBytes 939 Mbits/sec 0 486 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.09 GBytes 939 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.09 GBytes 937 Mbits/sec receiver
iperf Done.
Speedtest for now on the 4b8gb is:
root@DietPi:~# curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
Retrieving speedtest.net configuration...
Testing from *** (**************)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by i3D.net (***********) [41.96 km]: 32.228 ms
Testing download speed................................................................................
Download: 276.90 Mbit/s
Testing upload speed................................................................................................
Upload: 40.72 Mbit/s
On the 4b2gb:
root@DietPi:~# curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
Retrieving speedtest.net configuration...
Testing from ******(**********)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by i3D.net (*****) [41.96 km]: 35.01 ms
Testing download speed................................................................................
Download: 281.49 Mbit/s
Testing upload speed................................................................................................
Upload: 41.41 Mbit/s
Although the speedtest is better than last time, it’s still a lot slower than my PC connection.

I’d also test it with another tool, just to rule out the effect of it, e.g. that it selects a bad server (based on ping) or that it writes the downloaded test data to disk/SD card, instead of keeping it in memory or tmpfs.
Also I see the tool by default does multiple connections instead of a single one. That might max out the bandwidth, but may also cause some limiting overhead on the system. The --single option can be used to do a single connection only.
To illustrate the problem I used SabNZB to download a Linux distro…


After I shut down SabNZB, I tested with and without – single:
root@DietPi:~# curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python - --single
Retrieving speedtest.net configuration...
Testing from ******(**********)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Host Sailor Ltd (*****) [18.50 km]: 33.158 ms
Testing download speed................................................................................
Download: 41.90 Mbit/s
Testing upload speed................................................................................................
Upload: 11.71 Mbit/s
root@DietPi:~# curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
Retrieving speedtest.net configuration...
Testing from *****(***********)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Host Sailor Ltd (********) [18.50 km]: 33.721 ms
Testing download speed................................................................................
Download: 231.32 Mbit/s
Testing upload speed................................................................................................
Upload: 38.84 Mbit/s
After this, I once again tested my home pc connection - with the same server.

RPi4 easily saturates a gigabit connection, so I would question the speedtest method and try to download a file from some big corp, like MS or Nvidia, writing the output to some tmpfs.
Okay, single connection in this case slows it down dramatically, which shows that the used servers are maxxed already. I agree with trendy then that the tool is not a reliable measure and you should test it with a single server that is able to serve the 560 Mbps.
Your SABnzbd download rate is again a little lower, but the ~20 MiB look like a typical SD card write limit. So in this case you’d need to first verify that the download target drive is able to write much faster (long-term, without fs write cache).
Well it seems like my external WD Mybook 8TB over USB 3.0 is the problem for the slower SabNZB speed. This is my primary download location. Thanks for pointing this out. A realistic read/writespeed when connected to a pc for this drive is ~160MiB/s. Why is it so much slower on the Rpi4?
Filesystem Benchmark Results:
│
│ - Filepath = /mnt/stash/benchmark.file
│ - Test size = 500 MiB
│ - WRITE = 35 MiB/s
│ - READ = 68 MiB/s
I’m using a 128GB SanDisk Ultra A1 Class 10, U1. 120MiB’s is advertised, however I see many reviews online with a write speed of ~40MiB.
Would purchasing a faster SD card solve the issue?
The SD card has a theoretical maximum of 50 MiB/s bandwidth, practically up to ~40 MiB/s which matches the reviews you see.
The USB3 ports serve up to ~400 MiB/s, so that should max out our WD easily. Of course assure that it’s connected to one of the two USB3 ports instead of one of the two USB2 ports.
To check for related kernel logs/errors: lsmod