Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Very slow file transfers for seemingly no reason

Featured Replies

Hi, I'm definitely not a power user or expert in these things so I'll try to explain my issue and things I have tried as best I can but someone will probably still need to walk me through finding and providing the information that's actually needed. I just kinda taught myself how to do this for the most part but I'm stuck on this one issue.

My server as I have set it up is so far entirely working and I am able to transfer files to it locally and remotely using Tailscale. Wireguard is not an option as I have T Mobile 5G Home Internet and CGNAT nixes any sort of proper port forwarding. The problem is that the transfer speed both when uploading or downloading files is very slow. Initially I was getting at best only 20-60 KB/s, which was completely unusable. Made a number of improvements to my home network connection by getting a new router, getting new cat 8 cables, adding a better network card to my server and configuring it in an active-backup bond with the motherboard port, I was able to increase my home internet connection from ~100-150 Mbps to ~250-350 Mbps by doing a lot of this stuff but file transfers only increased to a measly 700-800 KB/s. Also went through and ensured that I was using my disks configured as intended; files move to a 1TB NVME Gen3 SSD as a cache then the mover takes them to the disk array, and I also tried switching to something I read on another forum post to use "turbo write" or to switch from read/modify/write to reconstruct write. Did not see much difference from this. Final checks I turned to Tailscale and opened all the ports they listed to achieve direct peer to peer connections instead of using DERP relays, which I did confirm successfully getting a peer to peer connection through Tailscale but this only managed to net me a final file transfer speed over the internet of about 2.7-3.7 MB/s which I have not been able to improve upon any further. Watching the network interface monitor on the dashboard while doing one of these file transfers shows that the inbound speed is only reaching about 35 Mbps during an over-the-internet transfer. When doing a local transfer from my home computer, I get about 68 MB/s which is more usable but still not fantastic in my opinion for writing to an NVME SSD, but watching the network interface monitor during that shows the inbound speed is reaching almost 600 Mbps, which is a huge drop between the inbound speed and actual file transfer speed happening. I'm not really sure where else to go from here as far as things to try to improve this.

Additionally I am running a Jellyfin docker on this server which strangely when connected to that on Tailscale over the internet I am able to stream HD video at full quality with no hitching or buffering, there are no speed issues there, which seems to rule out any sort of network throttling that I can tell.

Edited by jenvu01

  • Community Expert

Attach Diagnostics ZIP to your NEXT post in this thread

  • Community Expert

Not clear to me if local LAN transfers over SMB are also slow, without using Tailscale, is that a problem as well?

  • Author

Yes, local LAN transfers are where I can get about 68 MB/s while inbound network monitor is reading almost 600 Mbps. It's definitely faster than transfers over Tailscale but still seems slow.

  • Community Expert

Start by running an iperf single stream test in one direction, then reverse it (-R) and post the results.

  • Community Expert
14 hours ago, jenvu01 said:

about 68 MB/s while inbound network monitor is reading almost 600 Mbps

aaah... use your calculator!

600Mbs is just 75MB/s !

so your 68 MB/s are not far from the absolute maximum (and you have to substract the SMB overhead!).

Fooled by Units (again) 9_9

Edited by MAM59

  • Author
9 hours ago, JorgeB said:

Start by running an iperf single stream test in one direction, then reverse it (-R) and post the results.

Okay, had to figure out how to do that but I think I got it. Let me know if this looks correct.

root@HAF932:~# iperf3 -s

-----------------------------------------------------------

Server listening on 5201 (test #1)

-----------------------------------------------------------

Accepted connection from 100.123.3.106, port 46084

[ 5] local 100.91.231.48 port 5201 connected to 100.123.3.106 port 46086

[ ID] Interval Transfer Bitrate

[ 5] 0.00-1.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 1.00-2.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 2.00-3.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 3.00-4.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec

[ 5] 5.00-6.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 6.00-7.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec

[ 5] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec

[ 5] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec

[ 5] 10.00-11.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 11.00-12.00 sec 0.00 Bytes 0.00 bits/sec

[ 5] 12.00-13.00 sec 0.00 Bytes 0.00 bits/sec

[ 5] 13.00-14.00 sec 0.00 Bytes 0.00 bits/sec

[ 5] 14.00-15.00 sec 0.00 Bytes 0.00 bits/sec

[ 5] 15.00-16.00 sec 0.00 Bytes 0.00 bits/sec

[ 5] 16.00-17.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 17.00-18.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 18.00-19.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 19.00-20.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 20.00-21.00 sec 0.00 Bytes 0.00 bits/sec

[ 5] 21.00-22.00 sec 256 KBytes 2.10 Mbits/sec

[ 5] 22.00-23.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 23.00-24.00 sec 0.00 Bytes 0.00 bits/sec

[ 5] 24.00-25.00 sec 0.00 Bytes 0.00 bits/sec

[ 5] 25.00-26.00 sec 128 KBytes 1.05 Mbits/sec

[ 5] 26.00-26.50 sec 0.00 Bytes 0.00 bits/sec

- - - - - - - - - - - - - - - - - - - - - - - - -

[ ID] Interval Transfer Bitrate

[ 5] 0.00-26.50 sec 1.88 MBytes 593 Kbits/sec receiver

This one is the reverse direction:

-----------------------------------------------------------

Server listening on 5201 (test #2)

-----------------------------------------------------------

Accepted connection from 100.123.3.106, port 46130

[ 5] local 100.91.231.48 port 5201 connected to 100.123.3.106 port 46132

[ ID] Interval Transfer Bitrate Retr Cwnd

[ 5] 0.00-1.00 sec 1.00 MBytes 8.39 Mbits/sec 0 156 KBytes

[ 5] 1.00-2.00 sec 3.88 MBytes 32.5 Mbits/sec 0 676 KBytes

[ 5] 2.00-3.00 sec 3.62 MBytes 30.4 Mbits/sec 1 827 KBytes

[ 5] 3.00-4.00 sec 3.50 MBytes 29.4 Mbits/sec 0 787 KBytes

[ 5] 4.00-5.00 sec 1.75 MBytes 14.7 Mbits/sec 0 784 KBytes

[ 5] 5.00-6.00 sec 3.50 MBytes 29.4 Mbits/sec 0 789 KBytes

[ 5] 6.00-7.00 sec 3.50 MBytes 29.4 Mbits/sec 0 1005 KBytes

[ 5] 7.00-8.00 sec 4.00 MBytes 33.6 Mbits/sec 1 1.03 MBytes

[ 5] 8.00-9.00 sec 3.88 MBytes 32.5 Mbits/sec 0 931 KBytes

[ 5] 9.00-10.00 sec 4.00 MBytes 33.6 Mbits/sec 0 842 KBytes

[ 5] 10.00-10.18 sec 0.00 Bytes 0.00 bits/sec 0 803 KBytes

- - - - - - - - - - - - - - - - - - - - - - - - -

[ ID] Interval Transfer Bitrate Retr

[ 5] 0.00-10.18 sec 32.6 MBytes 26.9 Mbits/sec 2 sender

9 hours ago, MAM59 said:

aaah... use your calculator!

600Mbs is just 75MB/s !

so your 68 MB/s are not far from the absolute maximum (and you have to substract the SMB overhead!).

Fooled by Units (again) 9_9

Sorry, I don't know these types of conversions but that's good to hear that at least on the local network I'm getting speeds around what I should be, so I only need to be worrying about my remote connection speeds then.

  • Community Expert
10 hours ago, jenvu01 said:

I don't know these types of conversions

look at https://www.unitjuggler.com/bandwidth-umwandeln-von-Mbps-nach-MBps.html

Its a common mistake to take "b" for "B". They have a totally different meaning.

The page also shows you the needed conversion formulas (lool, but its easy, one BYTE equals 8 BITS).

Edited by MAM59

  • Community Expert

Those look terrible, especially going one way, I assume these are over Tailscale based on the IPs? How about using the LAN IPs?

  • Author

Yes, that was over wireless internet using Tailscale. These results are wired local LAN, no Tailscale. I do not have a device set up at another location currently to be able to test a wired connection over the internet unfortunately, all I have right now to do the internet transfers is my phone.

-----------------------------------------------------------

Server listening on 5201 (test #1)

-----------------------------------------------------------

Accepted connection from 192.168.1.120, port 48372

[ 5] local 192.168.1.200 port 5201 connected to 192.168.1.120 port 48386

[ ID] Interval Transfer Bitrate

[ 5] 0.00-1.00 sec 112 MBytes 941 Mbits/sec

[ 5] 1.00-2.00 sec 112 MBytes 941 Mbits/sec

[ 5] 2.00-3.00 sec 112 MBytes 942 Mbits/sec

[ 5] 3.00-4.00 sec 112 MBytes 941 Mbits/sec

[ 5] 4.00-5.00 sec 112 MBytes 942 Mbits/sec

[ 5] 5.00-6.00 sec 112 MBytes 942 Mbits/sec

[ 5] 6.00-7.00 sec 112 MBytes 942 Mbits/sec

[ 5] 7.00-8.00 sec 112 MBytes 941 Mbits/sec

[ 5] 8.00-9.00 sec 112 MBytes 942 Mbits/sec

[ 5] 9.00-10.00 sec 112 MBytes 942 Mbits/sec

- - - - - - - - - - - - - - - - - - - - - - - - -

[ ID] Interval Transfer Bitrate

[ 5] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec receiver

-----------------------------------------------------------

Server listening on 5201 (test #2)

-----------------------------------------------------------

Accepted connection from 192.168.1.120, port 49316

[ 5] local 192.168.1.200 port 5201 connected to 192.168.1.120 port 49318

[ ID] Interval Transfer Bitrate Retr Cwnd

[ 5] 0.00-1.00 sec 114 MBytes 954 Mbits/sec 0 266 KBytes

[ 5] 1.00-2.00 sec 113 MBytes 944 Mbits/sec 0 257 KBytes

[ 5] 2.00-3.00 sec 112 MBytes 941 Mbits/sec 0 246 KBytes

[ 5] 3.00-4.00 sec 112 MBytes 942 Mbits/sec 0 252 KBytes

[ 5] 4.00-5.00 sec 112 MBytes 942 Mbits/sec 0 246 KBytes

[ 5] 5.00-6.00 sec 113 MBytes 944 Mbits/sec 0 249 KBytes

[ 5] 6.00-7.00 sec 112 MBytes 943 Mbits/sec 0 252 KBytes

[ 5] 7.00-8.00 sec 112 MBytes 942 Mbits/sec 0 243 KBytes

[ 5] 8.00-9.00 sec 112 MBytes 936 Mbits/sec 0 257 KBytes

[ 5] 9.00-10.00 sec 113 MBytes 946 Mbits/sec 0 5.66 KBytes

- - - - - - - - - - - - - - - - - - - - - - - - -

[ ID] Interval Transfer Bitrate Retr

[ 5] 0.00-10.01 sec 1.10 GBytes 943 Mbits/sec 0 sender

  • Community Expert

Those look good, so the problem is the actual speed over wireless and Tailscale, WiFi can be extremely unreliable due to internal and external factors, Tailscale may also play a part, but without results, no wonder it's slow, in one of the directions, speed is below 1 Mbit.

  • Author

5G connection on my phone tests at ~480 Mbps, network speed at the Unraid NAS tests ~320 Mbps with a speedtest docker container. Using the lower home network speed put into that conversion provided by MAM59 that should get me around 40 MB/s remote transfer, much higher than the 3.7 I'm currently getting. I'm assuming this means Tailscale as the middleman is fully tanking the connection speed, are there any other alternative workarounds for remote server access that lets me get around the CGNAT problem? Or maybe there is a configuration in Tailscale I don't know about besides just getting it to make a direct connection vs. using DERP relays?

  • Community Expert
31 minutes ago, jenvu01 said:

Or maybe there is a configuration in Tailscale I don't know about besides just getting it to make a direct connection vs. using DERP relays?

Possibly, I recommend asking in the Tailscale subforum, don't have much experience with it, other than SMB is extremely slow over long distances with it.

  • Author

I'll ask over there but I'm guessing if SMB just doesn't work well over Tailscale it sounds like I'm kinda screwed unless there's an alternative solution I can use for remote access. I had read some people say you can use IPV6 to bypass NAT entirely to use Wireguard even on 5G networks with CGNAT but I was unsuccessful in this, I did manage to get IPV6 configured on my network and set up my Unraid server to use both IPV4 and IPV6 but still couldn't get a handshake over Wireguard so I guess that either doesn't work or I'm missing/misunderstanding something. Also had seen FTP suggested as better for long distance over Tailscale but FTP seems to only really allow for one big share on the server to dump all files into, and I'm going to be set up for multiple users with their own seperated shares so I don't think I can use FTP. OpenVPN seems even more complicated than Wireguard and probably likely to add even more overhead and slow things down more. Are there any other things to try I don't know about or is my last resort going back to my local cable company so I can just use Wireguard?

  • Community Expert

You can try Wireguard, but Tailscale is based on that, so it may be similar.

  • Author

I'm a little confused by this. I thought Wireguard was pretty much the standard for how people configured remote access for their Unraid servers but if you're saying Tailscale is based on Wireguard and I'm likely to experience similar performance, is everyone experiencing this much speed degradation on remote file transfers? Surely there's something I'm missing here short of just exposing the server directly to the internet which even without any real networking or IT experience I know isn't exactly a great idea.

  • Community Expert
10 hours ago, jenvu01 said:

is everyone experiencing this much speed degradation on remote file transfers?

Like mentioned, Samba over WireGuard/Tailscale for large distances will typically perform badly. This is because SMB is not good with high latency, but other protocols work much better, so depends on what you are using and the distance, but iperf should still work fine, suggesting there are other issues.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.