Latest interface: 0.3.1
Latest system: 010
nikki_wire
User

4 posts

Posted on 17 April 2012 @ 05:22
Hi,

I have been doing a few experiments with zfs "out of the box" (ie. no tuning) and been surprised to find it underperforming when doing lots of small write operations

On a sunfire v240 server with 1G memory:

$ /usr/bin/time -p dd if=/dev/zero of=testfile bs=10 count=2000000
2000000+0 records in
2000000+0 records out

real 16.51
user 3.78
sys 12.23

On a sun M3000 server with 8G memory (a superior server in all respects)

$ /usr/bin/time -p dd if=/dev/zero of=testfile bs=1 count=2000000
2000000+0 records in
2000000+0 records out

real 25.01
user 2.17
sys 22.43

As we increase the blocksize we see (marginally) better results for zfs:

On the v240:

$ /usr/bin/time -p dd if=/dev/zero of=testfile bs=1024 count=20000
20000+0 records in
20000+0 records out

real 0.58
user 0.04
sys 0.29

on the m3000:

$ /usr/bin/time -p dd if=/dev/zero of=testfile bs=1024 count=20000
20000+0 records in
20000+0 records out

real 0.35
user 0.02
sys 0.32

Does anyone have any idea why this is the case? Is there a way to improve zfs performance for lots of small write ops?

Many thanks
nikki_wire
User

4 posts

Posted on 17 April 2012 @ 05:25
I should add that I am using zfs mirroring on the m3000 and SVM (disksuite) mirroring on the other (so both servers are using software mirroring rather than RAID of any kind)
nikki_wire
User

4 posts

Posted on 17 April 2012 @ 05:28
by the way, that line

"$ /usr/bin/time -p dd if=/dev/zero of=testfile bs=1 count=2000000"

is a copy paste error - should read

"$ /usr/bin/time -p dd if=/dev/zero of=testfile bs=10 count=2000000"
Scotty
User

11 posts

Posted on 23 April 2012 @ 06:03
This is pretty common particularly if you aren't using an SSD for the ZIL. Read this first:

http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
Last Page

Valid XHTML 1.1