more lost dotdot caching pessimizes nfs especially
Bruce Evans
bde at zeta.org.au
Tue Jan 23 13:18:41 UTC 2007
I suspect that recent locking fixes near dotdot are responsible for
slowing down builds over nfs even further by increasing the number
of RPCs. Times and RPC counts for building a RELENG_4 kernel under
-current on a Turion X2 2GHz:
With i386 SMP kernel built a few days ago:
%%%
make depend:
9.31 real 5.04 user 1.25 sys
Lookup Read Write Access Getattr Other Total
1269 541 591 20633 447 112 23593
make:
67.28 real 55.55 user 3.86 sys
Lookup Read Write Create Access Fsstat Other Total
4633 2370 5291 436 22269 1726 14 36739
%%%
With i386 SMP kernel built an hour ago:
%%%
make depend:
13.70 real 5.38 user 1.56 sys
Lookup Read Write Access Getattr Other Total
14008 541 591 38615 447 96 54298
make:
71.49 real 55.21 user 4.45 sys
Lookup Read Write Create Access Fsstat Other Total
19237 2370 5292 436 41860 1714 14 70923
%%%
Note that only the number of Lookups and Access's changed significantly
(Access goes with Lookup).
This is without -j4 so that the slowdown is more obvious. "make depend"
is not parallelized, so -j4 has little effect for it, but -j4 now
speeds "make" up by even more than a factor of 2 by running more RPCs
in parallel. The speedup used to be only from 67.3 to 34.3 seconds,
but now it is from 71.5 to 34.8 seconds.
This is with my old fixes and hacks to reduce RPCs, and the network
tuned for latency (80 usec ping -f latency). Plain -current would use
about 120000 RPCs for "make" and thus take 10-20 seconds longer. It
would use a bit less than that for "make depend" and thus take 5-10
seconds longer. "make depend" would take about twice as long as it
should. It can easily take much longer than that on machines with
larger network latency.
Bruce
More information about the freebsd-fs
mailing list