Daemon News Ezine BSD News BSD Mall BSD Support Forum BSD Advocacy BSD Updates

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Horrible PostgreSQL performance with NFS



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
setup.

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.

TIA, /S
--
Sławek Żak / UNIX Systems Administrator