Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Whenever I do any kind of file transfer using USB, whether to a USB stick, or with my Android phone, or anything else, it is ridiculously slow.

enter image description here

It says 59.8 KB/sec, which would be an awesome speed if this were 1991 and I was using a modem to dial up to my local BBS. Surely USB technology is better than that...? 37 seconds to move less data than the equivelent of 1 MP3 file?

Also, regardless of what it says about speed and time, the reality is much, much slower. I routinely see it say something like "37 seconds left" and have to wait for minutes. Sometimes, if I want to move large amounts of files, it can say it will take 8 hours or more.

Is this normal? My computer may not be the most awesome on the market, and about a year old, but it's an i5 with 4GB RAM and modern components, so surely this isn't the hardware's fault.

What can I do to get better USB data transfer performance?

Also, I did look at this question, but my newbie eyes don't see anything that look like an actual solution, just a lot of discussion about what transfer rates could or should be.


Update: As requested in the comments, I've generated a whole bunch of output from the command line, and put it on Ubuntu Pastebin. Please see it here.

I've also posted the output from lsusb -t with my Android phone connected (which is the device I am most concerned about getting reasonable speeds with).


Update 2: As requested in the comments, I removed everything except the mouse and keyboard, and then only attached one extra device at a time for testing. Here is some output from dd:

My Sony video camera:

$ dd if=/dev/zero of=/media/disk/testfile bs=128k count=800 conv=fdatasync
800+0 records in
800+0 records out
104857600 bytes (105 MB) copied, 6.00824 s, 17.5 MB/s

My Android phone:

$ dd if=/dev/zero of=/media/C3AD-13DC/testfile bs=128k count=800 conv=fdatasync
800+0 records in
800+0 records out
104857600 bytes (105 MB) copied, 52.357 s, 2.0 MB/s

The camera performed much better than usual, and while the phone wasn't as bad as it has been (about twice as fast as I've ever seen), it's still significantly slower than the camera.

share|improve this question
    
What type of files are copying, and the specifications of your USB medium (USB flash drive, external HD, etc). –  Mitch Jun 27 '12 at 9:32
1  
@Mitch: I appreciate you trying to narrow down some specifics, but I think the point really is that this happens with any kind of USB connection (external HD, stick drive, camera, Android phone...) and with any kind of file (large files, small files, many files, few files, and any and every file type). –  Dave M G Jun 27 '12 at 15:29
    
@izx: I've added the output you requested to the question. I hope that contains the information you were asking for. –  Dave M G Jun 27 '12 at 15:36
    
Thanks Dave, hopefully it does. I will look at it when I'm back from work in the evening and try to come up with some suggestions. –  izx Jun 27 '12 at 15:44
    
Since it happens with any USB storage (I suppose it does with any file system), and with any file size, it could be just a matter of disabling USB Legacy Support and enabling AHCI within your BIOS. –  jasmines Jul 6 '12 at 10:53

2 Answers 2

After all the diagnostics Dave, this certainly looks like a problem being caused by your hub(s) -- first of all, the USB 1.1 external hub you're using, and possibly one of the internal chips on your motherboard used to provide physical USB ports.

  • 17.5 Mbytes/sec to your Sony Video Camera's flash memory is close to the practical throughput limits of USB 2.0; the 2.0 Mbytes/sec with your Android phone may just be because its flash doesn't support faster writes.
  • Your motherboard is a Foxconn P55MX, as this clue from dmesg on line 1308 of your paste tells us: DMI: ThirdWave Corporation Prime Series/P55MX Series, BIOS 080015 09/15/2009
  • The Intel P55 chipset contains two USB 2.0 controllers (or root hubs), providing up to 8 and 6 ports respectively:
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
    
  • One big problem is this external hub to which you have your mouse/keyboard/tablet connected; it looks like a USB 1.1 hub (or a poorly designed USB 2.0 hub). Connecting the 1.1 hub forces that root hub to downgrade all its ports to USB 1.1 speeds. A USB 2.0 hub contains translators which prevent this behavior:
            |__ Port 4: Dev 8, If 0, Class=hub, Driver=hub/4p, 12M
  • The btusb is just a Bluetooth dongle you plugged in.

Anyway, it appears the intermittent problem is caused when something forces the root hub to downgrade all ports to USB 1.0/USB 1.1 speeds -- 60 kbytes/sec is close to real-world USB 1.0 speeds IIRC!

Now, replacing your external hub with a proper USB 2.0 one should fix these problems; if not, something may be wrong with the actual Intel chip on the motherboard or its connection to the physical ports, and you may have to have it replaced under warranty.

share|improve this answer
    
Thanks very much for this thorough analysis. I really appreciate you taking the time. +50 bounty for being so complete. The hub you are talking about is actually an Aten switcher, so I can switch between two computers and use the same keyboard and monitors. It's hard to just replace it, but are you saying that one of the devices on the hub is USB 1.1, then the HUB treats all devices like USB 1.1? The reason I ask is because it would be hard/expensive to replace this switcher, so if it was a matter of making sure all devices on it were USB 2, that might be more feasible. –  Dave M G Jul 14 '12 at 3:18
    
@DaveMG, thanks! Model number of Aten switcher please? –  izx Jul 14 '12 at 3:21
    
It's a CS1742 –  Dave M G Jul 14 '12 at 3:37
    
If there's more information I can provide to get this working, please let me know. The problem has returned, so I'm far from out of the woods. –  Dave M G Jul 28 '12 at 12:52

Something very strange has happened. I booted to a live CD to see if the USB speeds were different. With the Live CD, it was much faster. Something around 4MB/s. I thought this was evidence that there was a configuration problem in my regular install. However, I rebooted back to my installed system, tried a test transfer one more time to be sure, but the speed is now exactly the same as it was with the Live CD. Could something have changed by using the LiveCD? That seems unlikely, but I tested before the Live CD, and it was definitely slower before... so this is very odd.

Judging by this, you are clearly suffering from either A) faulty hardware or B) a faulty USB driver

If you have other similar USB ports that work well on your system, then it is very likely just faulty hardware with that single port.

share|improve this answer
    
... or I'm just suffering the bug that was linked to in the comments, where the USB rate slows over time, and so it temporaroly appeared that it had improved after the reboot. I'm not saying that is definitely the case, just that nothing is quite so clear, and there are still many possibilities. –  Dave M G Jul 12 '12 at 14:29
    
The initial text on that bug reads "NOTICE: please do not add more comments to this bug! If you have a problem with USB transfers, please file your own report as these problems are typically hardware-dependent. Thanks!" You can verify that the problem is not related to nautilus/gnome/unity by using the commandline program pv to transfer your files. pv file > /media/usb/file. With this, you can securely conclude that the issue is hardware or driver fault. –  Sepero Jul 13 '12 at 6:45

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.