Horrible PostgreSQL performance with NFS

Slawek Zak slawek.zak at gmail.com
Fri Jan 13 12:45:31 PST 2006

Hello everyone,

A couple of days ago I've moved our production database from local
disks to NetAPP filer serving NFS. Performance for this server dropped
by factor of 10 if not more. From a happy 10% load, the server hit the
ceiling and sees load of 100% all the time with runqueue above 30. The
server is a Sun V40z machine, 4x Opteron 852, 16GB RAM, tuned for 1600
concurrent connections. I'm running FreeBSD 6.0 BETA5. I don't see any
problem with the network bandwidth or I/O opcount. Total bandwidth
generated by the machine tops at 10Mbps. NICs are bge configured for
100Mbps full-duplex. Filer hardly notices the traffic. It stays around
1% CPU load and 500 NFS ops/s including static file transfers. This
particular model can handle around 6000 I/Os per second. Trussing
database processes shows that most of the syscalls are semops. I tried
to search the archives but couldn't find anything useful for such

I can provide postgresql config. Sysctl knobs remain untouched not
counting basic NFS tweaking. For mount_nfs I tried to change NFS
buffer sizes -r -w. I also tried the -L option to keep the lock
traffic local. On the postgres side, setting fsync = off in
postgresql.conf. It didn't change a thing.

Any advice besides "give up on NFS" is most welcome. I need NetAPP
over NFS for snapshots and easy FS management.

Sławek Żak / UNIX Systems Administrator

More information about the freebsd-performance mailing list