Why do write speeds vary drastically when copying another file unto a USB stick?


Whenever I copy a file onto a USB, it starts at 30MB/s then goes down to 20, then 10, then 8 and sometimes and even 2MB/s and stays there. What is happening to the drive that the write speeds decrease so much?

In: Technology

Writing dense flash memory is slow. Writing cheap dense flash is *very* slow. Some USB drives get through this by having a bit of faster memory between the big NAND and the PC so you can copy small amounts of data fast (and it filters onto the slow memory with time).

Except when you dump data onto the drive the fast memory fills up and then the speed drops/stops until the slow memory accepts the data. Depending on how the drive works you might see waves in the speed as the fast memory is emptied and the PC fills it up quickly.

Software developer here,

It’s not the hardware to blame for the transfer rate you *see* dropping, but the software used to compute the running average, and display it to you, is very time sensitive. The transfer started, statistics started getting collected, and there was a lag between the work and the first update of the display. What you get is a skewed output.

The truth is no one cares enough to fix the code to display a more correct initial value – the algorithm will correct itself over time and settle onto an actually reasonable approximation.

Why is it slow in the first place? Well that depends on a number of factors. USB is a packet network, just like Ethernet, though it doesn’t typically leave the confines of your machine. There are 3 major versions, and each have their performance consequences. Just because a device says USB 2.x or 3.x DOESN’T ACTUALLY MEAN it uses those protocols – all they’re advertising is you can plug into that interface, and it’ll work. So all your cheap devices may be running the 1.x protocol for all we know. And your USB hub is sharing bandwidth with your South Bridge, which means all your other peripheral busses, and how much traffic are they generating on your motherboard?