Sequential buffering writes throughput is not consistent in VxFS 5.1 by default.

book

Article ID: 100005073

calendar_today

Updated On:

Cause

Write_throttle limits the number of dirty pages per file that the filesystem will generate before writing them to disk.

Leave write_throttle to the appropriate value, such as 128, will trigger the VxFS to flush the dirty pages in the timely manner.

The following the testing results.

Just run the vxbench commands below,
/opt/VRTSspt/FS/VxBench/vxbench -w write -i nthreads=1,nrep=10000,iosize=128k,iocount=14700 /testfs/file1
 
As the same time, you can find the I/O throughput with vxstat.
#vxstat –g testdg –i 1
Tue Feb  1 10:04:16 CST 2011
vol testvol               0       819         0    104672   0.00   3.21
Tue Feb  1 10:04:17 CST 2011
vol testvol               0       833         0    106400   0.00   2.82
Tue Feb  1 10:04:18 CST 2011
vol testvol               0       417         0     53136   0.00   6.34
Tue Feb  1 10:04:19 CST 2011
vol testvol               0       529         0     67712   0.00  24.85
Tue Feb  1 10:04:20 CST 2011
vol testvol               0       421         0     53888   0.00  28.71
Tue Feb  1 10:04:21 CST 2011
vol testvol               0       324         0     41472   0.00  40.75
Tue Feb  1 10:04:22 CST 2011
vol testvol               0       303         0     38784   0.00  41.94
Tue Feb  1 10:04:23 CST 2011
vol testvol               0       281         0     35968   0.00  45.56     <<< the I/O throughput is inconsistent

#vxtunefs -o write_throttle=128 /testfs

Tue Feb  1 10:18:35 CST 2011
vol testvol               0       654         0    334336   0.00   1.25
Tue Feb  1 10:18:36 CST 2011
vol testvol               0       641         0    328960   0.00   1.31
Tue Feb  1 10:18:37 CST 2011
vol testvol               0       667         0    340736   0.00   1.22
Tue Feb  1 10:18:38 CST 2011
vol testvol               0       668         0    342016   0.00   1.27
Tue Feb  1 10:18:39 CST 2011
vol testvol               0       680         0    348160   0.00   1.18
Tue Feb  1 10:18:40 CST 2011
vol testvol               0       664         0    339968   0.00   1.28  <<< it's consistent

P.S. using a bigger write_perf_io size, such as 1M, will gain better I/O bandwidth by aggregating the I/Os during the I/O flush.
 

Resolution

Set write_throttle to 128 with the command below.

#vxtunefs -o write_throttle=128


Issue/Introduction

Tracking the I/O throughput from the vxstat while issuing the sequential writes in the buffer I/O pattern, it was noticed the I/O throughput was not consistent always by default until setting the tunable write_throttle to 128.