Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

First of all, I found a similar question but it doesn't really solve my problem. I am trying to discover if the USB bus for a device I am using is the bottleneck in my program.

How can I monitor a USB bus (similar to how gnome-system-monitor works) to show bus utilization? Basically I want to identify when the bus is being 'maxed' out. I guess what I am looking for is some interface for usbmon, as that appears like it would do what I need.

This came about from testing the USRP and GNU Radio. I am running into a situation where it appears that the USB bus could be a limiting factor, so I ask the more general question of USB performance monitoring.

share|improve this question
While wireshark and usbmon get the traffic, I need something that can more easily give me an idea of throughput and such. – Mr. Shickadance Apr 5 '11 at 14:38
Do you see the usb bus reaching its theoretical maximum? Did you compare the traffic you get with benchmarks of your hardware? Max throughput is usually depended on the device connected and not the system bus, so to test it properly you'll need some hardware specifically made for that purpose. – forcefsck Apr 13 '11 at 17:21
up vote 2 down vote accepted

Since usbmon provides the length of each packet transferred, I would approach this by writing a quick program to parse the 0u file (which has data for all USB devices.) It would pick out the USB bus and device numbers, then keep a running total of the packet length field in both directions for each device.

This will then give you the amount of data transferred per device, in each direction. If you print it once a second you'll get a pretty good idea of each device's throughput. Note that it won't include any USB overhead, but if you compare the figures to a device that is able to saturate the available bandwidth you'll know whether you're getting close to the limit.

share|improve this answer
I was hoping for a pre-existing tool, but I suppose this will be sufficient. – Mr. Shickadance Apr 18 '11 at 22:12

USB-1.0, -1.1, 2 or 3? For lower versions, a harddrive or usbstick could be faster than the bus. So if you get a higher bandwith on another PC, you could test it with simple file transfer.

share|improve this answer

I've wrote a pair of shell scripts to get the throughput from a USB device. If someone what to use it, you can find it in this post.

share|improve this answer

Your Answer


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.