G'day, all, So, I've decided to migrate my home server from Linux+swRAID+LVM to Solaris+ZFS, because it seems to hold much better promise for data integrity, which is my primary concern.
However, naturally, I decided to do some benchmarks in the process, and I don't understand why the results are what they are. I though I had a reasonable understanding of ZFS, but now I'm not so sure. I've used bonnie++ and a variety of Linux RAID configs below to approximate equivalent ZFS configurations and compare. I do realise they're not exactly the same thing, but it seems to me they're reasonable comparisons and should return at least somewhat similar performance. I also realise bonnie++ is not an especially comprehensive or complex benchmark, but ultimately I don't really care about performance and this was only done out of curiosity. The executive summary is that ZFS write performance appears to be relatively awful (all the time), and it's read performance is relatively good most of the time (with "striping", "mirroring" and raidz[2]'s with fewer numbers of disks). Examples: * 8-disk RAID0 on Linux returns about 190MB/s write and 245MB/sec read, while a ZFS raidz using the same disks returns about 120MB/sec write, but 420MB/sec read. * 16-disk RAID10 on Linux returns 165MB/sec and 440MB/sec write and read, while a ZFS pool with 8 mirrored disks returns 140MB/sec write and 410MB/sec read. * 16-disk RAID6 on Linux returns 126MB/sec write, 162MB/sec read, while a 16-disk raidz2 returns 80MB/sec write and 142MB/sec read. The biggest problem I am having understanding "why is it so", is because I was under the impression with ZFS's CoW, etc, that writing (*especially* writes like this, to a raidz array) should be much faster than a regular old-fashioned RAID6 array. I certainly can't complain about the read speed, however - 400-odd MB/sec out of this old beastie is pretty impressive :). Help ? Have I missed something obvious or done something silly ? (Additionally, from the Linux perspective, why are reads so slow ?) PS: Hardware specs are Dual 2.8Ghz Xeon, 533Mhz bus, 2G RAM. Two SuperMicro 8-port SATA controllers - AOC-SAT2-MV8 - on separate PCI-X buses (Marvell 88SX6081 based, http://www.supermicro.com/products/accessories/addon/AoC-SAT2-MV8.cfm) 16 Seagate 250G drives, 8M cache, ST3250820AS Motherboard is a pull from an old Gateway dual Xeon server. PPS: Benchmark data (this will look awful with a proportional font): (With the Linux "RAID50" and "RAID60", I created two RAID5 and RAID6 arrays, respectively, then create a RAID0 array over the top of them. For "RAID10" I used the 'builtin' RAID10.) Single drive bonnie++ -d /mnt/ -s 8g -u0 -f Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP csmith-desktop 8G 42807 21 25278 7 65191 6 118.4 0 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ csmith-desktop,8G,,,42807,21,25278,7,,,65191,6,118.4,0,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ zpool create internal c0t0d0 ./bonnie++ -d /internal/ -s 8g -u0 -f Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP nitrogen 8G 46916 18 27814 11 62103 8 212.5 0 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 15522 99 +++++ +++ 24489 99 10140 99 +++++ +++ 5196 99 nitrogen,8G,,,46916,18,27814,11,,,62103,8,212.5,0,16,15522,99,+++++,+++,24489,99,10140,99,+++++,+++,5196,99 8 disk RAID0, one controller, 128k stripe Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP csmith-desktop 8G 190853 95 119364 42 245770 28 421.4 1 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ csmith-desktop,8G,,,190853,95,119364,42,,,245770,28,421.4,1,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ zpool create internal c0t0d0 zpool add internal c0t1d0 zpool add internal c0t2d0 zpool add internal c0t3d0 zpool add internal c0t4d0 zpool add internal c0t5d0 zpool add internal c0t6d0 zpool add internal c0t7d0 ./bonnie++ -d /internal/ -s 8g -u0 -f Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP nitrogen 8G 121711 47 100927 43 424900 75 617.4 3 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 14719 99 +++++ +++ 24421 99 14013 99 +++++ +++ 25612 99 nitrogen,8G,,,121711,47,100927,43,,,424900,75,617.4,3,16,14719,99,+++++,+++,24421,99,14013,99,+++++,+++,25612,99 16 disk RAID0, two controllers, 128k stripe Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP csmith-desktop 8G 189351 95 167948 65 442343 52 461.2 1 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ csmith-desktop,8G,,,189351,95,167948,65,,,442343,52,461.2,1,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ zpool create internal c0t0d0 zpool add internal c0t1d0 zpool add internal c0t2d0 zpool add internal c0t3d0 zpool add internal c0t4d0 zpool add internal c0t5d0 zpool add internal c0t6d0 zpool add internal c0t7d0 zpool add internal c1t0d0 zpool add internal c1t1d0 zpool add internal c1t2d0 zpool add internal c1t3d0 zpool add internal c1t4d0 zpool add internal c1t5d0 zpool add internal c1t6d0 zpool add internal c1t7d0 ./bonnie++ -d /internal/ -s 8g -u0 -f Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP nitrogen 8G 130142 50 133316 57 412643 68 681.2 3 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 15778 99 +++++ +++ 24652 99 5835 99 +++++ +++ 22881 99 nitrogen,8G,,,130142,50,133316,57,,,412643,68,681.2,3,16,15778,99,+++++,+++,24652,99,5835,99,+++++,+++,22881,99 16 disk RAID10, two controllers, 128k stripe Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP csmith-desktop 8G 165585 93 107365 45 268066 34 420.7 1 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ csmith-desktop,8G,,,165585,93,107365,45,,,268066,34,420.7,1,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ zpool create internal mirror c0t0d0 c1t0d0 zpool add internal mirror c0t1d0 c1t1d0 zpool add internal mirror c0t2d0 c1t2d0 zpool add internal mirror c0t3d0 c1t3d0 zpool add internal mirror c0t4d0 c1t4d0 zpool add internal mirror c0t5d0 c1t5d0 zpool add internal mirror c0t6d0 c1t6d0 zpool add internal mirror c0t7d0 c1t7d0 ./bonnie++ -d /internal/ -s 8g -u0 -f Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP nitrogen 8G 139750 54 120402 52 415646 73 702.6 3 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 14652 99 +++++ +++ 24324 99 14459 99 +++++ +++ 24347 99 nitrogen,8G,,,139750,54,120402,52,,,415646,73,702.6,3,16,14652,99,+++++,+++,24324,99,14459,99,+++++,+++,24347,99 8 disk RAID5, one controller, 128k stripe Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP csmith-desktop 8G 107288 67 54156 38 157472 47 299.2 1 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ csmith-desktop,8G,,,107288,67,54156,38,,,157472,47,299.2,1,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ zpool create internal raidz1 c0t0d0 c0t1d0 c0t2d0 c0t3d0 c0t4d0 c0t5d0 c0t6d0 c0t7d0 ./bonnie++ -d /internal/ -s 8g -u0 -f Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP nitrogen 8G 80800 31 57461 28 216634 43 188.6 1 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 15646 99 +++++ +++ 18737 99 13388 99 +++++ +++ 25170 99 nitrogen,8G,,,80800,31,57461,28,,,216634,43,188.6,1,16,15646,99,+++++,+++,18737,99,13388,99,+++++,+++,25170,99 16 disk RAID50, two controllers, 128k stripe Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP csmith-desktop 8G 134082 89 52457 32 105118 30 456.3 2 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ csmith-desktop,8G,,,134082,89,52457,32,,,105118,30,456.3,2,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ zpool add internal raidz1 c1t0d0 c1t1d0 c1t2d0 c1t3d0 c1t4d0 c1t5d0 c1t6d0 c1t7d0 ./bonnie++ -d /internal/ -s 8g -u0 -f Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP nitrogen 8G 82959 32 51422 33 193962 62 233.8 4 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 16458 99 +++++ +++ 16412 99 13135 99 +++++ +++ 11576 99 nitrogen,8G,,,82959,32,51422,33,,,193962,62,233.8,4,16,16458,99,+++++,+++,16412,99,13135,99,+++++,+++,11576,99 8 disk RAID6, one controller, 128k stripe Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP csmith-desktop 8G 96770 61 51418 34 148072 44 305.9 1 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ csmith-desktop,8G,,,96770,61,51418,34,,,148072,44,305.9,1,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ zpool create internal raidz2 c0t0d0 c0t1d0 c0t2d0 c0t3d0 c0t4d0 c0t5d0 c0t6d0 c0t7d0 ./bonnie++ -d /internal/ -s 8g -u0 -f Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP nitrogen 8G 89015 34 58932 28 188166 36 178.3 1 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 15475 99 +++++ +++ 22184 99 9085 99 +++++ +++ 24124 99 nitrogen,8G,,,89015,34,58932,28,,,188166,36,178.3,1,16,15475,99,+++++,+++,22184,99,9085,99,+++++,+++,24124,99 16 disk RAID60, two controllers, 128k stripe Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP csmith-desktop 8G 131519 88 51273 31 102324 30 419.2 2 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ csmith-desktop,8G,,,131519,88,51273,31,,,102324,30,419.2,2,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ zpool add internal raidz2 c1t0d0 c1t1d0 c1t2d0 c1t3d0 c1t4d0 c1t5d0 c1t6d0 c1t7d0 ./bonnie++ -d /internal/ -s 8g -u0 -f Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP nitrogen 8G 86688 33 46889 33 170449 58 254.2 5 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 16009 99 +++++ +++ 24150 99 12990 99 +++++ +++ 22813 99 nitrogen,8G,,,86688,33,46889,33,,,170449,58,254.2,5,16,16009,99,+++++,+++,24150,99,12990,99,+++++,+++,22813,99 16 disk RAID5, two controllers, 128k stripe Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP csmith-desktop 8G 135052 89 71118 56 167523 69 412.2 2 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ csmith-desktop,8G,,,135052,89,71118,56,,,167523,69,412.2,2,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ zpool create internal raidz1 c0t0d0 c0t1d0 c0t2d0 c0t3d0 c0t4d0 c0t5d0 c0t6d0 c0t7d0 c1t0d0 c1t1d0 c1t2d0 c1t3d0 c1t4d0 c1t5d0 c1t6d0 c1t7d0 ./bonnie++ -d /internal/ -s 8g -u0 -f Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP nitrogen 8G 90557 34 44982 37 147654 69 209.4 8 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 15631 99 +++++ +++ 21228 99 10132 99 +++++ +++ 24391 99 nitrogen,8G,,,90557,34,44982,37,,,147654,69,209.4,8,16,15631,99,+++++,+++,21228,99,10132,99,+++++,+++,24391,99 16 disk RAID6, two controllers, 128k stripe Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP csmith-desktop 8G 126421 84 68968 55 162105 65 360.0 1 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ csmith-desktop,8G,,,126421,84,68968,55,,,162105,65,360.0,1,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ zpool create internal raidz2 c0t0d0 c0t1d0 c0t2d0 c0t3d0 c0t4d0 c0t5d0 c0t6d0 c0t7d0 c1t0d0 c1t1d0 c1t2d0 c1t3d0 c1t4d0 c1t5d0 c1t6d0 c1t7d0 ./bonnie++ -d /internal/ -s 8g -u0 -f Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP nitrogen 8G 80457 31 38875 35 142049 64 193.1 7 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 14426 99 +++++ +++ 21855 99 10068 99 +++++ +++ 24235 99 nitrogen,8G,,,80457,31,38875,35,,,142049,64,193.1,7,16,14426,99,+++++,+++,21855,99,10068,99,+++++,+++,24235,99 This message posted from opensolaris.org _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss