Weird issues with file transfer speeds

tl;dr file transfer speeds between storage devices connected to the same machine are poor, much worse than transfer speeds across LAN

I’ve been having strange problems with my main machine and I’m not sure how to go about troubleshooting this. Specs are as follows:

  • Ryzen 7 2700X
  • 32GB of RAM
  • Asus ROG Crosshair VII
  • Xubuntu 20.04

There is a total of 6 drives connected to SATA ports on the motherboard:

  • 2x 500GB SSDs - these are not used on Linux, only for Windows (dual boot)
  • 240GB Intel 520 Series SSD - that’s where unencrypted /boot is, along with / which is encrypted using LUKS
  • 1TB Samsung 850 Pro SSD - LUKS encrypted /home
  • 2x 4TB Seagate STEA4000400 HDDs - encrypted with LUKS, purchased originally in USB 3.0 enclosures

The strange thing is that very often (but not quite always) when I transfer files between the 1TB Samsung SSD and one of the 4TB HDDs (or between the HDDs) the transfer speeds are slow (~40MB/s or less) or abysmally slow (below 1MB/s) and often (but again, not always) the entire OS will become unresponsive and frequently lock up/freeze for a few seconds - Firefox and other software becomes sluggish and I effectively can’t do much on the PC until the file transfer is completed.

This happens when I’m transferring files with rsync, copying them in the GUI with Thunar or even when I’m creating backups using restic.

I’ve tried several different combinations - HDD->HDD, HDD->SSD, SSD->HDD - and transfer speeds often become very poor, as described above. This was also happening when the HDDs were connected to the machine with USB (before I took them out of their enclosures and installed them inside the case to use SATA connections.)

I also have another machine on my LAN - Lenovo Thinkcentre Tiny with Ryzen 5 PRO 3400GE and 16GB of RAM - with the same 4TB Seagate HDD and an SSD just for the OS (Xubuntu 20.04) and when I’m rsync’ing files to/from it across the network the transfer speeds are significantly better - approx. 80-90MB/s - regardless of which way I transfer the files and whether the source/destination is on HDD or SSD of any of those two PCs. I also haven’t noticed such slowdown when transferring files from/to SSD and HDD of the secondary machine.

Post the output of dmesg right around the time when speeds tank.

thanks for replying!

I fired up dmesg -wHTu and was also tailing /var/log/syslog and started transferring some files between disks, at first it was going fine and then once again it practically stopped (transfer speed was going between zero and a few hundred KB/s) but nothing was showing up in either dmesg or syslog at all, related to transfers or not…

any idea where else I could peek into to get some more information about what’s going on?