Bad performance of 7.0 nfs client with Solaris nfs server

Valerio Daelli 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.
>
>  Eric
>
>

Hi

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.
		Build: freebsd

	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
	Auto Mode
	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
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!

Valerio Daelli


More information about the freebsd-performance mailing list