I had a problem where trying benchmarking tests and rsync (not at the same time obviously) to an external WD HDD maxed out at 24MB/s when I know the drive can go up to 150MB/s write speed.
Things I checked initially:
- Made sure that the drive is plugged into a USB 3.0 port on my PC (tried both front ports as well as the motherboard ports)
- Tried a different USB 3.0 cable (I tried 3 different cables but got the same result)
- Tested the cable with an external SSD drive to make sure that there is nothing wrong with the cable itself (I was able to reach 100MB/s with that same cable)
Finally what resolved it (after several hours of research) was enabling the cache on the external drive
Check first:
sudo hdparm -W /dev/sdx
(replace sdx with the correct device name in your case, you can check this using lsblk)
This returned a 0 which means that the cache is off/disabled
then I did:
sudo hdparm -W1 /dev/sdx
(Mod edit: corrected a typo in the above commands)
to enable cache on the drive (check again with the previous command and it should return 1 this time)
Now speeds went from a max of 24MB/s to 120MB/s
Note: the above fix works only temporarily and you’ll need to apply it again each time you connect/disconnect a USB drive. For a permanent solution you’ll need to make a new Udev rule that applies on device connect. Edited: remove udev-usb-sync
System Specs in case it is useful to anyone:
Operating System: Manjaro Linux
KDE Plasma Version: 6.6.4
KDE Frameworks Version: 6.25.0
Qt Version: 6.11.0
Kernel Version: 6.18.26-1-MANJARO (64-bit)
Graphics Platform: Wayland
Edit: Made a few improvements to the text and added a note that this fix is only a temporary solution - also thanks to scotty65 for correcting my inital typo with the hdparm command.

