[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ale] usb drives suck



On 2010/01/25, at 14:34 , Geoffrey wrote:

> Ed Cashin wrote:
>> The iowait bucket is a subset of the old "idle" bucket.  It just
>> means the CPU doesn't have much to do and you're doing I/O.
>>
>> Specifically, when the last thing that happened before the CPU
>> went idle was to kick off some I/O, the tick gets counted in the
>> iowait bucket.
>>
>> So there should be plenty of CPU for other processes while
>> the system waits for the I/O to finish.  I don't know why the
>> load average (running average count of processes that would
>> like to run but have to wait) would go up unless there were lots
>> of processes that couldn't run until the I/O finished.
>
> I don't get that either.  Right now, load average is 7.5, 6.49, 4.6
> I'm running an rsync of /home to an external usb drive.
>
> I guarantee you, once it finishes, load average will drop below 1.
> -- 
> Until later, Geoffrey

I had always wondered why drives connected (in daisy
chains) on my Firewire (ieee-1394) buses delivered
bi-directional (25mbps) DV video recording and playback
across multiple drives so consistently, but the same external
drive & case connected as a dead end single device via a
dedicated USB 2.0 connection  could not provide a
continuous data stream and caused problems with video
playback. It was especially confusing because, on paper,
the USB 2.0 spec has a slightly higher data rate than 1394a
(though only about half that of 1394b, which I also have on
a couple of machines).

Recently I found out the reason for the discrepancies and the
video playback problems:  What the USB bus specs don't tell
you is that USB data flow is SOFTWARE arbitrated, while
Firewire (ieee-1394) buses are HARDWARE arbitrated.

When the CPU is being heavily pressed into service decoding
video streams and delivering frame accurate video and audio
sync, I frequently see cases where the added interruptions of
arbitrating the video data coming from USB bus will disrupt the
media flow.

I think the CPU load increases you are seeing when transferring
large files are probably the result of software based USB bus
arbitration making demands on the processor.

peace
aaron