ZFS I/O Throughput question..

Chris Watson bsdunix44 at gmail.com
Sat Sep 18 04:42:01 UTC 2010


priyanka# zpool status
   pool: tank
  state: ONLINE
  scrub: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	tank        ONLINE       0     0     0
	  raidz1    ONLINE       0     0     0
	    ada2    ONLINE       0     0     0
	    ada3    ONLINE       0     0     0
	    ada4    ONLINE       0     0     0
	    ada5    ONLINE       0     0     0

errors: No known data errors
priyanka#apply "dd if=/dev/ada%1 of=/dev/null bs=1m count=5000 &" 2 3  
4 5
[1] 73068
[1] 73071
[1] 73074
[1] 73077
priyanka# 5000+0 records in
5000+0 records out
5242880000 bytes transferred in 35.093718 secs (149396538 bytes/sec)
5000+0 records in
5000+0 records out
5242880000 bytes transferred in 35.374131 secs (148212262 bytes/sec)
5000+0 records in
5000+0 records out
5242880000 bytes transferred in 36.654998 secs (143033154 bytes/sec)
5000+0 records in
5000+0 records out
5242880000 bytes transferred in 38.558150 secs (135973328 bytes/sec)

priyanka# apply "dd if=/dev/zero of=/dev/ada%1 bs=1m count=5000 &" 2 3  
4 5
[1] 73130
[1] 73133
[1] 73136
[1] 73139
priyanka# 5000+0 records in
5000+0 records out
5242880000 bytes transferred in 35.149276 secs (149160398 bytes/sec)
5000+0 records in
5000+0 records out
5242880000 bytes transferred in 35.786368 secs (146504949 bytes/sec)
5000+0 records in
5000+0 records out
5242880000 bytes transferred in 36.552717 secs (143433387 bytes/sec)
5000+0 records in
5000+0 records out
5242880000 bytes transferred in 40.162832 secs (130540595 bytes/sec)
priyanka#


On Sep 17, 2010, at 3:10 PM, Pawel Jakub Dawidek wrote:

> On Fri, Sep 17, 2010 at 09:35:21PM +0200, Pawel Jakub Dawidek wrote:
>> On Wed, Sep 15, 2010 at 03:05:46AM -0500, Chris Watson wrote:
>>> I have been testing ZFS on a home box now for a few days and I  
>>> have a
>>> question that is perplexing me. Everything I have read on ZFS says  
>>> in
>>> almost every case mirroring is faster than raidz. So I initially  
>>> setup
>>> a 2x2 Raid 10 striped mirror. Like so:
>> [...]
>>
>> Could you try running something like this:
>>
>> 	# apply "dd if=/dev/ada%1 of=/dev/null bs=1m count=5000 &" 2 3 4 5
>>
>> This will tell us how much of total throughput do you have.
>> If you can destroy your data, you may also try this:
>>
>> 	# apply "dd if=/dev/null of=/dev/ada%1 bs=1m count=5000 &" 2 3 4 5
>
> 	# apply "dd if=/dev/zero of=/dev/ada%1 bs=1m count=5000 &" 2 3 4 5
>
> Thanks to se@ for noticing this.
>
>> If you disks cannot work at full speed in parallel this might explain
>> what you're seeing. Mirror send to disk twice as much data as it
>> receives and RAIDZ sends only 33% more data in four disk case.
>>
>> And no, there are neither special RAIDZ optimizations not special  
>> mirror
>> pesimizations in FreeBSD.
>
> -- 
> Pawel Jakub Dawidek                       http://www.wheelsystems.com
> pjd at FreeBSD.org                           http://www.FreeBSD.org
> FreeBSD committer                         Am I Evil? Yes, I Am!



More information about the freebsd-fs mailing list