Unbuffered NFS on FreeBSD
Posted on 2003-12-03
I have a process running on a Solaris 2.6 server that writes continuously to a log file. This log file is sitting on an NFS filesystem (hosted by a network application storage filer) which is mounted read-only on a FreeBSD server.
There's a process running on the FreeBSD box that's supposed to read each line as it comes in and add some information about it to a berkely DB file stored on the machine's local disk. Ideally, I'd like the entire process (writting to log -> read log -> add to database) to take a few seconds at most. It currently takes around a minute.
If I tail -f the log file on the Solaris box, I can see the writes happening live, as they happen. If I tail -f the same log file on the FreeBSD box, I see nothing new happening....then about a minute later my console gets flooded with new entries....then nothing for a minute.....then another influx of data.
I think what's happening here is somewhere, the NFS traffic is being buffered by the OS. The only mount options I'm using on the FreeBSD box in /etc/fstab for this partition is 'ro' (read-only). Is there anything else I can do to ensure that the OS itself is not buffering the incomfing NFS traffic? Any sysctl switches that I can tweak?
Thanks for any help you can provide.