On 07/02/2014 12:58 PM, Greg Freemyer wrote:
On Wed, Jul 2, 2014 at 12:42 PM, John Andersen
wrote: On 7/2/2014 8:59 AM, Greg Freemyer wrote:
All,
I happened to run a USB3 throughput test recently and it wrote 5 TB in 7 hours. I used a USB3 hub to let me hook up 5 1 TB drives and wrote to them simultaneously.
That's about 200 MB / sec.
It's the first time I've ever apparently saturated USB3. Does anyone know if 200MB / sec is a good max USB3 throughput?
fyi: Per the spec, it should be possible to hit 500MB/sec., but real world seldom hits the spec limits so 200MB/sec may be as good as it gets. If not, I may need to look for a better USB3 hub. (I do a lot of high bandwidth transfers in my job.)
Greg -- Greg Freemyer
Using what method did you write to 5 drives simultaneously?
Something similar to "dd if=/dev/zero of=/dev/sdb" for sdb, sdc, sdd, sde, and sdf individually.
I actually used "dc3dd wipe=/dev/sdb" etc. It is more efficient than reading from /dev/zero.
It was not a broadcast mechanism.
Best I know, is that you can send data to ONE usb device at a time based on the addressing scheme, and sending to 5 required 5 send operations each with a different address.
I did not mean the same level of simultaneous that you are. I meant the data packets were interleaved.
Which is about the worst case you can think of.
Think:
dc3dd wipe=/dev/sdb & dc3dd wipe=/dev/sdc & dc3dd wipe=/dev/sdd & dc3dd wipe=/dev/sde & dc3dd wipe=/dev/sdf
I actually used 5 consoles and ran one each of the above in each console.
So you get a small burst of transfer then switch to the next.. See my other posting about this.
fyi: I'm hashing (similar to md5sum) 500 GB of data on one drive currently. I'm getting 108 MB across USB3 from a single USB3 drive. I'm very happy with that speed.
Depending on how you do that. Theres a differnce between dd bs=512b and dd bs=10K
But when I first copied the data between 2 drives I was only getting about 60 MB /sec throughput (120 MB combined reads and writes).
Suppose you use the 'copy' program from software bytes using the Fread() type buffering. You have a 512 byte read buffer and 512 byte write buffer. The core of you code does putchar(getchar()) that is, one at a time. And don't forget those 512 byte buffers. Then there's using 'dd' with big buffers between files. Oh, right, files, which means the file system overhead, and quite possibly the allocation of new file segments and putting those refernces in the file map. Some file systems are faster than others. See http://www.phoronix.com/scan.php?page=article&item=linux_311_filesystems as an example of different file systems under different loads and conditions. You may want to look specifically at http://www.phoronix.com/scan.php?page=article&item=usb20_usb30_flash&num=1 and http://www.phoronix.com/scan.php?page=article&item=usb20_usb30_flash&num=1 You might also look at http://www.phoronix.com/scan.php?page=article&item=linux_iosched_2012&num=1 There are a lot of things you can tune under /proc/
It would be great if I could get a faster transfer than 60 MB/sec.
Compared to the phoronix to flash drive you seem to be doing well. -- /"\ \ / ASCII Ribbon Campaign X Against HTML Mail / \ -- "The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice." -- Brain Herbert, -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org