Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Oct 2012 11:16:16 -0500
From:      Thomas Johnson <tom@claimlynx.com>
To:        freebsd-fs@freebsd.org
Cc:        root <root@claimlynx.com>
Subject:   Poor throughput using new NFS client (9.0) vs. old (8.2/9.0)
Message-ID:  <CAFevjsthqegWv_GXVXceabwYf9urKZ7kEW2qQw7DSQpC7Hv0BA@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
We recently upgraded a number of hosts from FreeBSD 8.2 to 9.0. Almost
immediately, we received reports from users of poor performance. The
upgraded hosts are PXE-booted, with an NFS-mounted root. Additionally, they
mount a number of other NFS shares, which is where our users work from.
After a week of tweaking rsize/wsize/readahead parameters (per guidance),
it finally occurred to me that 9.0 defaults to the new NFS client and
server. I remounted the user shares using the oldnfs file type, and users
reported that performance returned to its expected level.

This is obviously a workaround, rather than a solution. We would prefer to
get our hosts using the newnfs client, since presumably oldnfs will be
deprecated at some point in the future. Is there some change that we should
have made to our NFS configuration with the upgrade to 9.0, or is it
possible that our workload is exposing some deficiency with newnfs? We tend
to deal with a huge number of tiny files (several KB in size). The NFS
server has been running 9.0 for some time (prior to the client upgrade)
without any issue. NFS is served from a zpool, backed by a Dell MD3000,
populated with 15k SAS disks. Clients and server are connected with Gig-E
links. The general hardware configuration has not changed in nearly 3 years.

As an example of the performance difference, here is some of the testing I
did while troubleshooting. Given a directory containing 5671 zip files,
with an average size of 15KB. I append all files to an existing zip file.
Using the newnfs mount, I found that this operation generally takes ~30
seconds (wall time). Switching the mount to oldnfs resulted in the same
operation taking ~10 seconds.

tom@test-1:/test-> ls 53*zip | wc -l
    5671
tom@test-1:/test-> ll -h BIG*
-rw-rw-r--  1 tom      claimlynx   8.9M Oct 17 14:06 BIGGER_PILE_1.zip
tom@test-1:/test-> time zip BIGGER_PILE_1.zip 53*.zip
0.646u 0.826s 0:51.01 2.8%    199+2227k 0+2769io 0pf+0w
...reset and repeat...
0.501u 0.629s 0:30.49 3.6%    208+2319k 0+2772io 0pf+0w
...reset and repeat...
0.601u 0.522s 0:32.37 3.4%    220+2406k 0+2771io 0pf+0w

tom@test-1:/-> cd /
tom@test-1:/-> sudo umount /test
tom@test-1:/-> sudo mount -t oldnfs -o rw server:/array/test /test
tom@test-1:/-> mount | grep test
server:/array/test on /test (oldnfs)
tom@test-1:/-> cd /test
...reset and repeat...
0.470u 0.903s 0:13.09 10.4%    203+2229k 0+5107io 0pf+0w
...reset and repeat...
0.547u 0.640s 0:08.65 13.6%    231+2493k 0+5086io 0pf+0w
tom@test-1:/test-> ll -h BIG*
-rw-rw-r--  1 tom      claimlynx    92M Oct 17 14:14 BIGGER_PILE_1.zip

Thanks!

-- 
Thomas Johnson
ClaimLynx, Inc.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFevjsthqegWv_GXVXceabwYf9urKZ7kEW2qQw7DSQpC7Hv0BA>