I would suspect the checksum part of this (I do believe it's being actively worked on) :
6533726 single-threaded checksum & raidz2 parity calculations limit write bandwidth on thumper -r Robert Milkowski writes: > Hi, > > snv_74, x4500, 48x 500GB, 16GB RAM, 2x dual core > > # zpool create test c0t0d0 c0t1d0 c0t2d0 c0t3d0 c0t4d0 c0t5d0 c0t6d0 c0t7d0 > c1t0d0 c1t1d0 c1t2d0 c1t3d0 c1t4d0 c1t5d0 c1t6d0 c1t7d0 c4t0d0 c4t1d0 c4t2d0 > c4t3d0 c4t4d0 c4t5d0 c4t6d0 c4t7d0 c5t1d0 c5t2d0 c5t3d0 c5t5d0 c5t6d0 c5t7d0 > c6t0d0 c6t1d0 c6t2d0 c6t3d0 c6t4d0 c6t5d0 c6t6d0 c6t7d0 c7t0d0 c7t1d0 c7t2d0 > c7t3d0 c7t4d0 c7t5d0 c7t6d0 c7t7d0 > [46x 500GB] > > # ls -lh /test/q1 > -rw-r--r-- 1 root root 82G Oct 18 09:43 /test/q1 > > # dd if=/test/q1 of=/dev/null bs=16384k & > # zpool iostat 1 > capacity operations bandwidth > pool used avail read write read write > ---------- ----- ----- ----- ----- ----- ----- > test 213G 20.6T 645 120 80.1M 14.7M > test 213G 20.6T 9.26K 0 1.16G 0 > test 213G 20.6T 9.66K 0 1.21G 0 > test 213G 20.6T 9.41K 0 1.18G 0 > test 213G 20.6T 9.41K 0 1.18G 0 > test 213G 20.6T 7.45K 0 953M 0 > test 213G 20.6T 7.59K 0 971M 0 > test 213G 20.6T 7.41K 0 948M 0 > test 213G 20.6T 8.25K 0 1.03G 0 > test 213G 20.6T 9.17K 0 1.15G 0 > test 213G 20.6T 9.54K 0 1.19G 0 > test 213G 20.6T 9.89K 0 1.24G 0 > test 213G 20.6T 9.41K 0 1.18G 0 > test 213G 20.6T 9.31K 0 1.16G 0 > test 213G 20.6T 9.80K 0 1.22G 0 > test 213G 20.6T 8.72K 0 1.09G 0 > test 213G 20.6T 7.86K 0 1006M 0 > test 213G 20.6T 7.21K 0 923M 0 > test 213G 20.6T 7.62K 0 975M 0 > test 213G 20.6T 8.68K 0 1.08G 0 > test 213G 20.6T 9.81K 0 1.23G 0 > test 213G 20.6T 9.57K 0 1.20G 0 > > So it's around 1GB/s. > > # dd if=/dev/zero of=/test/q10 bs=128k & > # zpool iostat 1 > capacity operations bandwidth > pool used avail read write read write > ---------- ----- ----- ----- ----- ----- ----- > test 223G 20.6T 656 170 81.5M 20.8M > test 223G 20.6T 0 8.10K 0 1021M > test 223G 20.6T 0 7.94K 0 1001M > test 216G 20.6T 0 6.53K 0 812M > test 216G 20.6T 0 7.19K 0 906M > test 216G 20.6T 0 6.78K 0 854M > test 216G 20.6T 0 7.88K 0 993M > test 216G 20.6T 0 10.3K 0 1.27G > test 222G 20.6T 0 8.61K 0 1.04G > test 222G 20.6T 0 7.30K 0 919M > test 222G 20.6T 0 8.16K 0 1.00G > test 222G 20.6T 0 8.82K 0 1.09G > test 225G 20.6T 0 4.19K 0 511M > test 225G 20.6T 0 10.2K 0 1.26G > test 225G 20.6T 0 9.15K 0 1.13G > test 225G 20.6T 0 8.46K 0 1.04G > test 225G 20.6T 0 8.48K 0 1.04G > test 225G 20.6T 0 10.9K 0 1.33G > test 231G 20.6T 0 3 0 3.96K > test 231G 20.6T 0 0 0 0 > test 231G 20.6T 0 0 0 0 > test 231G 20.6T 0 9.02K 0 1.11G > test 231G 20.6T 0 12.2K 0 1.50G > test 231G 20.6T 0 9.14K 0 1.13G > test 231G 20.6T 0 10.3K 0 1.27G > test 231G 20.6T 0 9.08K 0 1.10G > test 237G 20.6T 0 0 0 0 > test 237G 20.6T 0 0 0 0 > test 237G 20.6T 0 6.03K 0 760M > test 237G 20.6T 0 9.18K 0 1.13G > test 237G 20.6T 0 8.40K 0 1.03G > test 237G 20.6T 0 8.45K 0 1.04G > test 237G 20.6T 0 11.1K 0 1.36G > > Well, writing could be faster than reading here... there're gaps due to bug > 6415647 I guess. > > > # zpool destroy test > > # metainit d100 1 46 c0t0d0s0 c0t1d0s0 c0t2d0s0 c0t3d0s0 c0t4d0s0 c0t5d0s0 > c0t6d0s0 c0t7d0s0 c1t0d0s0 c1t1d0s0 c1t2d0s0 c1t3d0s0 c1t4d0s0 c1t5d0s0 > c1t6d0s0 c1t7d0s0 c4t0d0s0 c4t1d0s0 c4t2d0s0 c4t3d0s0 c4t4d0s0 c4t5d0s0 > c4t6d0s0 c4t7d0s0 c5t1d0s0 c5t2d0s0 c5t3d0s0 c5t5d0s0 c5t6d0s0 c5t7d0s0 > c6t0d0s0 c6t1d0s0 c6t2d0s0 c6t3d0s0 c6t4d0s0 c6t5d0s0 c6t6d0s0 c6t7d0s0 > c7t0d0s0 c7t1d0s0 c7t2d0s0 c7t3d0s0 c7t4d0s0 c7t5d0s0 c7t6d0s0 c7t7d0s0 -i > 128k > d100: Concat/Stripe is setup > [46x 500GB] > > And I get not so good results - maximum 1GB of reading... hmmmm... > > maxphys is 56K - I thought it was increased some time ago on x86! > > Still no performance increase. > > # metainit d101 -r c0t0d0s0 c1t0d0s0 c4t0d0s0 c6t0d0s0 c7t0d0s0 -i 128k > # metainit d102 -r c0t1d0s0 c1t1d0s0 c5t1d0s0 c6t1d0s0 c7t1d0s0 -i 128k > # metainit d103 -r c0t2d0s0 c1t2d0s0 c5t2d0s0 c6t2d0s0 c7t2d0s0 -i 128k > # metainit d104 -r c0t4d0s0 c1t4d0s0 c4t4d0s0 c6t4d0s0 c7t4d0s0 -i 128k > # metainit d105 -r c0t3d0s0 c1t3d0s0 c4t3d0s0 c5t3d0s0 c6t3d0s0 c7t3d0s0 -i > 128k > # metainit d106 -r c0t5d0s0 c1t5d0s0 c4t5d0s0 c5t5d0s0 c6t5d0s0 c7t5d0s0 -i > 128k > # metainit d107 -r c0t6d0s0 c1t6d0s0 c4t6d0s0 c5t6d0s0 c6t6d0s0 c7t6d0s0 -i > 128k > # metainit d108 -r c0t7d0s0 c1t7d0s0 c4t7d0s0 c5t7d0s0 c6t7d0s0 c7t7d0s0 -i > 128k > > # iostat -xnzCM 1 | egrep "device| c[0-7]$" > [...] > extended device statistics > r/s w/s Mr/s Mw/s wait actv wsvc_t asvc_t %w %b device > 0.0 362.0 0.0 362.0 0.0 7.0 0.0 19.3 0 698 c0 > 0.0 377.0 0.0 377.0 0.0 7.0 0.0 18.5 0 698 c1 > 0.0 320.0 0.0 320.0 0.0 6.0 0.0 18.7 0 598 c4 > 0.0 268.0 0.0 268.0 0.0 5.0 0.0 18.6 0 499 c5 > 0.0 372.0 0.0 372.0 0.0 7.0 0.0 18.8 0 698 c6 > 0.0 374.0 0.0 374.0 0.0 7.0 0.0 18.7 0 698 c7 > > Sometimes I get even more - around 2.3GB/s > > The question is - why I can't get that kind of performance with single zfs > pool (striping accross all te disks)? Concurrency problem or something else? > > > This message posted from opensolaris.org > _______________________________________________ > zfs-discuss mailing list > zfs-discuss@opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/zfs-discuss _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss