What is the PREEMPTION option good for?

Frank Mayhar frank at exit.com
Fri Dec 1 21:46:30 PST 2006


On Fri, 2006-12-01 at 20:54 -0800, Matthew Dillon wrote:
>     The single biggest NFS client performance issue I have encountered
>     in an environment where most of the data can be cached from earlier
>     runs is with negative name lookups.  Due the large number of -I
>     options used in builds, the include search path is fairly long and
>     this usually results in a large number of negative lookups, all of
>     which introduce synchronous dead times while the stat() or open() 
>     waits for the over-the-wire transaction to complete.
> 
>     The #1 solution is to cache negative namecache hits for NFS clients.
>     You don't have to cache them for long... just 3 seconds is usually
>     enough to remove most of the dead time.  Also make sure your access
>     cache timeout is something reasonable.

Back in my early Locus days, 1994 or 95, we ran into the same phenomenon
while benchmarking our distributed file system.  The SVR4.2 name cache
didn't cache negative lookups and that killed us on certain performance
benchmarks, even locally (since we nearly doubled the code path) much
less when the file system actually lived on a remote node.
-- 
Frank Mayhar frank at exit.com     http://www.exit.com/
Exit Consulting                 http://www.gpsclock.com/
                                http://www.exit.com/blog/frank/


More information about the freebsd-arch mailing list