USB transfers very slow (kB/s range only)

speedtransfer-rateusbusb-flash-drive

However When plugging my USB 2.0 flash drive into the USB 3.0 port of one of my laptops running W8 Im only getting around 2.5 kB/s! sometimes if its a larger transfer it will trail of to nothing at all!!

The strange thing is when I plug it into a W7 laptop's USB 2.0 port transfers run at expected speeds (i.e. I dont notice it being overly slow but I didnt look at the numbers).

Neither of the laptops have the USB performance set for speed rather than safe removal, nor do I want them to be as I have found the gain in speed to be minimal yet the payoff in damaged drives does indeed rise quite a lot.

Even when it is transferring, looking at the windows transfer visualisation, it shows continues peaks (the peaks still only being a few kB/s) and drop offs instead of a rise and then a continuous(-ish) level till a final fall-off that one would expect.

Neither disk manager nor device manager (or event logs) show any issue with the drive r anything else.

Sometimes the speed increases if I push down on the end of the protruding USB drive, but other times that seems to slow it… A current transfer of mainly .c files is running at only 637 bytes/s!
Any knowledge on how to fix this? Thanks

P.S. Yes I have looked at a lot of the other Q's regarding slow USB transfers – they all (as far as I could make out) concern minor increases in the MB/s range.

Best Answer

You also have to take into account the nature of the data you are writing. Writes to a flash-based disk have (at least) two steps: 1) Receiving the data to the drive's buffer RAM (limited by bus speed) and 2) Writing the data from RAM to FLASH (limited by write cycle time).

Usually receiving the data is very fast unless your machine or USB bus is very busy with other things -- MB/Sec is typically very large. However, actually writing each transfer inside the chip takes a fixed amount of time, so if you are writing thousands of small files vs one large file, the large file transfer is largely bound by bus speed and drive RAM buffer size, but the small files will be largely bound by flash cycle time.

As a test, try writing, say, 1GB of a large file (say, a zip of some large folder) vs the same amount of data in small files. You will likely see a huge difference.

Related Question