Date: Mon, 22 Dec 2008 20:36:58 +0100 From: "Jonatan Evald Buus" <jonatan.buus@cellpointmobile.com> To: freebsd-questions@freebsd.org Subject: NFS Cache Message-ID: <113ce31b0812221136x351b5d39g17269d5eb9ae4b9a@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Greetings, We are having problems with Record Based Log Shipping from our PostGreSQL database server that appears to stem from NFS caching the files. PostGreSQL are continously writing to its WAL files located in the pg_xlog directory which is shared via NFS Our program is in turn continously detecting the changes as described in 24.4.4 at http://www.postgresql.org/docs/8.3/static/warm-standby.html and copying a segment of the WAL file to the local harddisk. The changes written by PostGreSQL however doesn't appear to be reflected through the mapped NFS drive until at some later point in time (not sure how long the delay is, but it appears to be 10+ seconds). The delay causes the transferred WAL files to become corrupt. Running the same program directly on the PostGreSQL machine provides the expected result. The following is the NFS configuration on both the Client and Server machines: sysctl -a |grep nfs vfs.nfs.downdelayinitial: 12 vfs.nfs.downdelayinterval: 30 vfs.nfs.skip_wcc_data_onerr: 1 vfs.nfs.nfs3_jukebox_delay: 10 vfs.nfs.reconnects: 0 vfs.nfs.bufpackets: 4 vfs.nfs.realign_count: 0 vfs.nfs.realign_test: 0 vfs.nfs.defect: 0 vfs.nfs.iodmax: 20 vfs.nfs.iodmin: 0 vfs.nfs.iodmaxidle: 120 vfs.nfs.diskless_rootpath: vfs.nfs.diskless_valid: 0 vfs.nfs.nfs_ip_paranoia: 1 vfs.nfs.nfs_directio_allow_mmap: 1 vfs.nfs.nfs_directio_enable: 1 vfs.nfs.clean_pages_on_close: 1 vfs.nfs.nfsv3_commit_on_close: 0 vfs.nfs.access_cache_timeout: 0 vfs.nfs4.access_cache_timeout: 0 vfs.nfsrv.nfs_privport: 0 vfs.nfsrv.commit_miss: 0 vfs.nfsrv.commit_blks: 0 vfs.nfsrv.async: 0 vfs.nfsrv.realign_count: 0 vfs.nfsrv.realign_test: 4069 vfs.nfsrv.gatherdelay_v3: 0 vfs.nfsrv.gatherdelay: 10000 Are there other ways of disabling the NFS' cache than using sysctl? Preferably at mount time so caching is only disabled for the PostGreSQL mount point. Alternatively, how is NFS forced to use Direct IO? Appreciate the input Cheers Jona
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?113ce31b0812221136x351b5d39g17269d5eb9ae4b9a>