Bad performance of 7.0 nfs client with Solaris nfs server
valerio.daelli at gmail.com
Mon Mar 17 10:09:35 UTC 2008
> Just now got a chance to look at the trace. It looks like FILE_SYNC is
> enabled on the write, which will cause the filer to fully commit the
> block (8k in this case) to disk before replying. This will usually hurt
> performance. I'm not certain where it is getting set, but you might try
> some mount options, like 'async' mode. This might also be a bug in
> FreeBSD that is forcing it to be enabled all the time. I'll look
> through some source code and see what I can find.
I have yes solved this issue and I have another test.
Now the mount is sync (no async) and the iozone includes
the -D flag.
Now the write performance boosts from 3MB/s to 30MB/s.
root at bsd7:~ iozone -D -+q 1 -i 0 -i 1 -r 2048 -n 2048 -g 2G -Raceb
iozone.xls -f /mnt/nest.ifom-ieo-campus.it/iozone/file.tmp
Iozone: Performance Test of File I/O
Version $Revision: 3.283 $
Compiled for 32 bit mode.
Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
Al Slater, Scott Rhine, Mike Wisner, Ken Goss
Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
Randy Dunlap, Mark Montague, Dan Million,
Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy,
Erik Habbinga, Kris Strecker, Walter Wong.
Run began: Mon Mar 17 11:06:28 2008
Using msync(MS_ASYNC) on mmap files
Delay 1 seconds between tests enabled.
Record Size 2048 KB
Using minimum file size of 2048 kilobytes.
Using maximum file size of 2097152 kilobytes.
Excel chart generation enabled
Include close in write timing
Include fsync in write timing
Command line used: iozone -D -+q 1 -i 0 -i 1 -r 2048 -n 2048 -g 2G
-Raceb iozone.xls -f /mnt/nest.ifom-ieo-campus.it/iozone/file.tmp
Output is in Kbytes/sec
Time Resolution = 0.000004 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
random bkwd record stride
KB reclen write rewrite read reread read
write read rewrite read
2048 2048 49419 49755 629565 632905
4096 2048 7713 47431 625536 616224
8192 2048 28479 49564 630012 620276
16384 2048 26492 49515 631681 621500
32768 2048 13030 49572 631771 617552
65536 2048 24907 37586^C
Notice that now we have using msync(MS_ASYNC) on mmap files
(not a kernel expert so not sure if it is related to our problem).
Without the -D flag we get 3MB/s with iozone.
Thanks for you help!
More information about the freebsd-performance