I'm currently debugging slow NFS performance on mac clients. Running FreeBSD 9.2 stable with a mix of 200 Mac OS X 10.8, 10.7 and 10.6 clients and NFS is configured with 256 threads, nfs3, tcp. The server is pretty beefy, 16 cores, 64GB RAM, pure SSD storage pool. Usage of the SSDs is only 7% busy at it's busiest.
The biggest issue is when the finder attempts to show the contents of a folder it takes 25 seconds or longer for anything to appear. With Terminal however it appears instantly under any load condition when using ls -l. Home directories are in /Network/Servers and listed as such in open directory Mounts.
Periodically I get this error on the mac side when listing directories in finder:
automountd[1766]: set_and_fake_mapent_mntlevel: subdir=/Contents error: Contents not found in map=-fstab
Not sure what to do about the above error. Apple says fstab is deprecated but it can be edited with vifs. FreeBSD doesn't user UUID's but fstab expects a UUID map... I am at my wits end with this problem. do I need to change to a different mount point like /net instead?
I'm also wondering with 200 clients with five nfsiod threads (~1000 nfsiod threads total) am I oversubscribing the nfs server? I have changed the client macs nfsiod threads down to 1 each to see if this is indeed the issue tomorrow but have this nagging feeling it won't change. The freebsd list says most of my RPC is Access calls (getattr, etc) and will only use the threads when writing and for readahead. I have the mac nfs.conf, and auto_master listed below. I'm also attempting async with this nfs conf tomorrow as well. I definitely think it's load based because it gets slower and slower as people logon but the server isn't being overtaxed that I can tell.
---nfs.conf---
# Generated automatically by NFS Manager 2013-10-14 16:50:55 +0000
nfs.client.allow_async = 1
nfs.client.nfsiod_thread_max = 1
nfs.client.mount.options = nfc,noatime,vers=3,rsize=32768,wsize=32768,rdirplus,locallocks,inet
nfs.client.statfs_rate_limit = 1
nfs.client.is_mobile = 0
---auto_master---
#
# Automounter master map
#
+auto_master # Use directory service
/net -hosts -nobrowse,hidefromfinder,nosuid
/home auto_home -nobrowse,hidefromfinder
/Network/Servers -fstab -nobrowse,hidefromfinder
/- -static
Thanks in advance,