Transfer speed (from manjaro notebook to HDD) slows down to 1000 kB/s

When I copy some videos from computer to my HDD, speed is decreasing from a good(70MB/s) to less then 600kB/s
I have Ryzen 7 4000, 512GB ssd, kde, btrfs partition, 8 GB RAM
I use this command to measure speed:

time (rsync -ah --progress '~/Videos/' '/run/media/user/HDD' && sync) 

I experimented a little and noticed that transfer speed from live cd mode(ubuntu) is good at another notebook(at least 30MB/s), but without changes at mine notebook

I installed Windows as second OS at my notebook and speed was stable enough(a lot of vids - 18 MB/s, one huuge - 35MB/s), I can’t say speed is very high, but in any case It’s better

The most interesting things happened, after I had booted to manjaro back. Usually I was able to transfer about 8 gb of data, then - decreasing of speed. But now I was able to copy 15 GB, part of videos with amazing speed (70-120MB/s), and then just rapid fall from 70 MB/s to 3MB/s and below

I don’t know what to do next, Any help would be appreciated
Thanks

Some factors:

  • real transfer speeds can be obfuscated when using read and write cache
  • btrfs is CoW, which can take a hit in write performance Nevermind. Your USB is not formatted as btrfs
  • different distros, Windows vs Linux, and filesystems, all yield different results
  • assuming your USB drive is using UAS, unless it’s falling back to BOT mode.

Linux uses ram as cache when handling files.

It will start fast and when memory is filled it begin writing to disk and the actual write is depending on the USB device.

Do not make the mistake to remove the device when the process seemingly is finished - it is not - the remaining cached files still needs to be flushed to the storage device. Always ensure all cache has been flushed by issuing the command

sync

Or using the eject function and wait until the file manager ejects the device.

There has been dozens of topics which ask this question and the answer is configuration.

Please search the forum for keywords like dirty_bytes dirty_ratio vfs_cache_pressure - it all boils down to create a config which matches your system.