A question (well lets make it 3 really) – Is vdbench a useful tool when testing
file system performance of a ZFS file system? Secondly - is ZFS write
performance really much worse than UFS or VxFS? and Third - what is a good
benchmarking tool to test ZFS vs UFS vs VxFS?
The reason I ask is this – I am using the following – very simple write only
test scenario using vdbench -
sd=ZFS,lun=/pool/TESTFILE,size=10g,threads=8
wd=ETL,sd=ZFS,rdpct=0, seekpct=80
rd=ETL,wd=ETL,iorate=max,elapsed=1800,interval=5,forxfersize=(1k,4k,8k,32k)
For those not familiar with vdbench - this scenario reads as follows:
SD = Storage Definition = A 10g file in on my ZFS directory - and use 8
concurrent threads for the test which indicate the maximum concurrent IO's for
this Storage definition
WD = Workload Definition - Use the ZFS storage pool, with rdpct = 0 - means
100% write, and seekpct = 80 means that 80% of the IO ops will start a new
random seek address.
RD = Run Definition = This is the actual run - we want to run 4 tests with 1,
4, 8 & 32k blocks - report back to me every 5 seconds what's happening, and
iorate = max says 'have at er' - run this thing to the ground if possible - as
I am not simulating a specific workload per se but trying to see what the
maximum performance I might see would be.
So - I am seeing disheartening results.
My test configuration is as follows: T2000 / 32Gb connected via 2 x 2GB fibre
connections to a 3510 array which has 5 disks assigned to the host acting only
as a JBOD. This configuration (including 3510) is dedicated to testing
performance of ZFS vs SVM with UFS vs VxVM with VxFS – but note that at this
point the veritas packages have not been added yet – we do not want any
perception that another package may impact performance of any of the tests.
This is a Solaris 10 06/06 install – with all the latest patches and no out of
box optimizations performed. The first suite of tests is to only see
differences in out of box performance and manageability.
The results I am seeing are this – read performance is acceptable and on par
with UFS, however when it comes to write – based on the performance I am seeing
- the system seems to not be able to keep up with the writes. I am seeing large
periods of time where is no reported activity, and if I am looking at zfs
iostat I do see consistent writing however - also if I terminate the test - zfs
will continue to write for about 2 - 3 minutes after all other activity has
stopped.
The following is an example of what I see - Example 1 is from the initial file
create, example 2 is from the actual test run. What is most important to note
are the lines with big gapping 0's running through them -and the associated
large response times surrounding them.
If anyone has any information on ZFS performance - it would be apprecated.
12:40:59.815 Starting RD=New_file_format_for_sd=ZFS; I/O rate: 5000; Elapsed:
360000 seconds. For loops: xfers
ize=65536 threads=8
interval i/o MB/sec bytes read resp resp
resp cpu% cpu%
rate 1024**2 i/o pct time max
stddev sys+usr sys
12:41:03.362 1 4858.99 303.69 65536 0.00 1.411 59.843
2.468 21.4 16.7
12:41:04.101 2 878.85 54.93 65536 0.00 2.219 98.016
8.795 13.1 7.5
12:41:05.069 3 147.65 9.23 65536 0.00 74.181 1022.374
232.319 9.7 4.0
12:41:06.056 4 160.97 10.06 65536 0.00 52.750 425.264
105.263 8.0 3.8
12:41:07.085 5 1025.10 64.07 65536 0.00 8.832 492.696
50.995 10.2 5.6
12:41:08.077 6 664.67 41.54 65536 0.00 1.550 2.963
0.511 6.3 5.6
12:41:09.113 7 1740.72 108.79 65536 0.00 6.627 1139.357
75.573 10.9 9.9
12:41:10.160 8 111.72 6.98 65536 0.00 98.972 1426.363
361.047 6.0 3.5
12:41:11.029 9 3888.81 243.05 65536 0.00 1.653 7.255
0.687 20.3 18.0
12:41:12.071 10 0.00 0.00 0 0.00 0.000 0.000
0.000 3.5 3.2
12:41:13.045 11 0.00 0.00 0 0.00 0.000 0.000
0.000 3.4 3.2
12:41:14.075 12 0.00 0.00 0 0.00 0.000 0.000
0.000 3.3 2.8
12:41:15.034 13 4183.62 261.48 65536 0.00 8.080 3230.801
143.611 19.6 19.1
12:41:16.071 14 1238.02 77.38 65536 0.00 6.348 136.478
10.506 12.1 9.9
12:41:17.057 15 1136.13 71.01 65536 0.00 6.214 102.408
11.094 10.1 9.5
12:41:18.053 16 805.20 50.32 65536 0.00 8.028 134.882
16.480 7.9 7.6
12:41:19.040 17 0.00 0.00 0 0.00 0.000 0.000
0.000 3.3 3.2
12:41:20.039 18 0.00 0.00 0 0.00 0.000 0.000
0.000 3.6 3.3
12:41:21.038 19 0.00 0.00 0 0.00 0.000 0.000
0.000 3.3 3.2
12:41:22.035 20 0.00 0.00 0 0.00 0.000 0.000
0.000 2.5 2.3
12:41:23.035 21 3281.30 205.08 65536 0.00 12.456 4476.151
220.323 15.1 14.7
12:41:24.033 22 1030.57 64.41 65536 0.00 3.100 24.685
2.928 6.9 6.3
12:41:25.031 23 0.00 0.00 0 0.00 0.000 0.000
0.000 0.4 0.1
12:41:26.032 24 0.00 0.00 0 0.00 0.000 0.000
0.000 0.1 0.0
12:41:27.032 25 0.00 0.00 0 0.00 0.000 0.000
0.000 0.2 0.1
12:41:28.032 26 0.00 0.00 0 0.00 0.000 0.000
0.000 0.1 0.0
12:41:29.032 27 0.00 0.00 0 0.00 0.000 0.000
0.000 0.1 0.0
Example 2 is from a test run:
20:49:53.300 Starting RD=R2-ETL; I/O rate: Uncontrolled MAX; Elapsed: 1800
seconds. For loops: xfersize=1024
interval i/o MB/sec bytes read resp resp
resp cpu% cpu%
rate 1024**2 i/o pct time max
stddev sys+usr sys
20:50:24.010 1 29696.60 29.00 1024 0.00 0.071 0.846
0.076 13.2 11.5
20:50:54.009 2 32894.71 32.12 1024 0.00 0.389 53786.416
131.545 12.9 11.0
20:51:24.019 3 0.00 0.00 0 0.00 0.000 0.000
0.000 5.5 5.5
20:51:54.009 4 0.00 0.00 0 0.00 0.000 0.000
0.000 5.3 5.3
20:52:24.009 5 0.00 0.00 0 0.00 0.000 0.000
0.000 4.5 4.5
20:52:54.012 6 73450.21 71.73 1024 0.00 0.431 100559.489
191.587 25.1 20.0
20:53:24.029 7 91490.35 89.35 1024 0.00 0.073 1155.887
3.896 29.7 23.1
20:53:54.029 8 36467.79 35.61 1024 0.00 0.114 2475.837
8.169 16.1 13.5
20:54:24.009 9 0.00 0.00 0 0.00 0.000 0.000
0.000 5.4 5.4
20:54:54.010 10 0.00 0.00 0 0.00 0.000 0.000
0.000 5.4 5.3
20:55:24.012 11 168.99 0.17 1024 0.00 161.833 102381.535
4063.826 6.4 6.4
20:55:54.010 12 107970.26 105.44 1024 0.00 0.063 1.328
0.046 33.0 25.5
20:56:24.054 13 99816.33 97.48 1024 0.00 0.063 184.888
0.320 30.6 23.7
20:56:54.009 14 0.00 0.00 0 0.00 0.000 0.000
0.000 5.4 5.4
20:57:24.009 15 0.00 0.00 0 0.00 0.000 0.000
0.000 5.3 5.3
20:57:54.009 16 0.00 0.00 0 0.00 0.000 0.000
0.000 4.4 4.4
20:58:24.011 17 66220.65 64.67 1024 0.00 0.479 102375.134
205.419 22.9 18.3
20:58:54.011 18 116584.14 113.85 1024 0.00 0.057 1.022
0.011 33.1 25.0
20:59:24.009 19 24817.44 24.24 1024 0.00 0.080 62.738
0.224 12.7 11.0
20:59:54.019 20 0.00 0.00 0 0.00 0.000 0.000
0.000 5.4 5.4
21:00:24.019 21 0.00 0.00 0 0.00 0.000 0.000
0.000 5.4 5.4
21:00:54.012 22 24137.65 23.57 1024 0.00 1.221 102831.215
341.815 14.1 12.4
21:01:24.010 23 117132.15 114.39 1024 0.00 0.057 0.636
0.010 33.3 25.3
21:01:54.009 24 65551.35 64.01 1024 0.00 0.065 46.923
0.111 22.2 17.7
21:02:24.009 25 0.00 0.00 0 0.00 0.000 0.000
0.000 5.4 5.4
21:02:54.019 26 0.00 0.00 0 0.00 0.000 0.000
0.000 5.3 5.3
21:03:24.010 27 0.00 0.00 0 0.00 0.000 0.000
0.000 4.8 4.8
21:03:54.009 28 100439.41 98.09 1024 0.00 0.336 102721.762
167.369 33.0 26.1
21:04:24.019 29 106561.14 104.06 1024 0.00 0.062 55.353
0.099 31.9 24.6
21:04:54.009 30 0.00 0.00 0 0.00 0.000 0.000
0.000 5.5 5.5
If anyone know’s if this is a VDbench issue not properly reporting the
information or if it is ZFS issue – I’d appreciate some further insights.
Thanks
-Tony
This message posted from opensolaris.org
_______________________________________________
zfs-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss