[RndTbl] ZFS I/O strangeness

Adam Thompson athompso at athompso.net
Sat Mar 3 17:11:02 CST 2012


I get the best performance out of dd(1) at 8MB block size, but it's still less than if I cat and pipe.
It's standard GNU cat, which does not do anything fancy like that AFAIK.

Possibly Solaris has enormous pipelines, and has wildly optimized multi-processor I/O, so two processes are faster than one??

-Adam


Gilles Detillieux <grdetil at scrc.umanitoba.ca> wrote:

>I'd expect the readahead to be the same for the two commands, as it 
>should all happen behind the scenes at the filesystem level.  Or does 
>the C library, or the cat command itself, do its own readahead?  More 
>likely cat is using a different input buffer size than 8k and that is 
>resulting in the extra efficiency.  I'd try different bs= values on the 
>first dd command to see if that helps.
>
>On 03/03/2012 12:52 PM, Adam Thompson wrote:
>> I have a ZFS RAIDZ3 filesystem under OpenSolaris (actually a Nexenta build
>> so a GNU userland on top of OpenSolaris kernel).
>>
>> "dd if=filename of=/dev/null bs=8k" gives me ~66Mbytes/sec.
>> "cat filename | dd of=/dev/null bs=8k" gives me ~142Mbytes/sec.
>>
>> WTF?  Why would using cat *increase* the overall speed?
>> The only thing I can think of is readahead, but why would cat cause that
>> to happen while dd doesn't?
>>
>> -Adam Thompson
>>   athompso at athompso.net
>>
>>
>>
>> _______________________________________________
>> Roundtable mailing list
>> Roundtable at muug.mb.ca
>> http://www.muug.mb.ca/mailman/listinfo/roundtable
>
>-- 
>Gilles R. Detillieux              E-mail:<grdetil at scrc.umanitoba.ca>
>Spinal Cord Research Centre       WWW:    http://www.scrc.umanitoba.ca/
>Dept. Physiology, U. of Manitoba  Winnipeg, MB  R3E 0J9  (Canada)
>
>_______________________________________________
>Roundtable mailing list
>Roundtable at muug.mb.ca
>http://www.muug.mb.ca/mailman/listinfo/roundtable
>



More information about the Roundtable mailing list