On Thu, Jul 3, 2014 at 5:25 PM, John Andersen
On 7/3/2014 1:57 PM, Greg Freemyer wrote:
On Thu, Jul 3, 2014 at 12:51 AM, Dirk Gently
wrote: 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.)
Max rate is basically how fast the serial lines can push/receive data between the wire and the host or device.
You might be able to sustain maximum speeds when using something like a static memory device, but probably not even for flash memory (in either a stick of SSD device) because flashing new data is comparatively slow.
And spinning platters with read/write heads on seeker arms have no chance of keeping up that kind of speed.
The above reply assumes the bottleneck is the disk drive. I agree that is likely the case when a single disk is in use via USB-3. My statement is that when I go from one disk (108 MB / sec) to 2 disks (120 MB/sec) I am not seeing a linear increase in bandwidth or even close to it.
Further, when I go to 5 disks, I seem to max out the USB-3 connection at 200MB/sec. That is disappointingly low to me, but it may be as good as it gets.
If I could get faster throughput by getting a better USB-3 hub, I'd like to know. As I'm working with a laptop Greg
But as explained previously, unless you are doing some magical "send once + receive on all 5" (which you said you were not doing), you are really only dealing with one disk at a time on either end of the wire.
The disks have write-caches that can accept data at the full USB spec speed (or so I assume). That means if I am sending data to a USB-3 drive at 100MB/sec, then the USB-3 bus is only 20% of saturation. A typical disk cache holds multiple tracks of data, so for a fully utilized disk i/o pattern the disk spends most of it's time telling the host that it's cache is full and it can't accept any more data. Further, disks internal caches tend to be structured to align with tracks, so if wiping a disk as I described with dc3dd wipe=/dev/sdb the disk will initially accept data at full speed, but then the cache will fill up. When the relatively slow spinning platter makes a full rotation (takes about 200 usecs per rotation for a 5200 rpm drive) and written out a track of cache, it then frees up that cache line and lets the host send another chunk of data. But then it immediately says: my cache is full, hold off on sending any more. After another full rotation of the platter, it frees up another track of cache and lets the host send another chunk of data. I don't know the details of how read-ahead caching works with respect to the low level disk reads, but I see 110 MB/sec of read speed using "dd if=/dev/sdb of=/dev/null" I suspect the drive typically reads out a full track of data to the cache, then just returns the requested data out of that to the host. That would make a lot of sense and be very easy to implement.
One receiving disk maxes out at 108 Two receiving disks: Second drive takes advantage of first being maxed (not ready to receive) and it (#2) receives while #1 is busy. They take turns
Agreed. but why don't I get better USB-3 bus utilization. A single drive does gets about 20% bus utilization. Why don't I get 40% with 2 drives?
By the time you have 5 targets, you've probably maxed out your sending disk and the wire is waiting for data.
I'm not sure what you are saying. With "dc3dd wipe=/dev/sdb" all of the zeros come straight from the CPU. It can generate way more than 200MB/sec of zeros. The bottleneck is not the data source. It has to be the USB-3 bus. Greg -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org