[612] in Info-AFS_Redistribution
Re: NFS vs. AFS builds
daemon@ATHENA.MIT.EDU (Lyle_Seaman@transarc.com)
Thu Feb 13 18:45:12 1992
Date: Thu, 13 Feb 1992 16:25:10 -0500 (EST)
From: Lyle_Seaman@transarc.com
To: dstokes@sunlight.austin.ibm.com, craig@aixwiz.austin.ibm.com
Cc: Info-AFS@transarc.com
In-Reply-To: <9202140214.AA13349@aixwiz.austin.ibm.com>
craig@aixwiz.austin.ibm.com (Craig Anderson) writes:
> Ok, like i thought i'd see about this stat performance everyone was talking
> about.... Looks like it takes 15 times longer to stat a file on the AFS
> source tree than on the NFS tree...
>
> LOCAL:
> % timex ./stat /usr/include/stdio.h 10000
>
> NFS:
> # mount speedo:/SOURCE/2007/bos/prod/src /bos/3.1.2/2007
> % timex ./stat /bos/3.1.2/2007/com/cmd/s/auth/tsmlogin.c 10000
>
> AFS: (no options to afsd)
> %timex ./stat /afs/austin.ibm.com/aix/312/3005/bos/prod\
> /src/com/cmd/s/auth/tsmlogin.c 10000
Well, this isn't exactly a fair comparison.
You should cd to the directory and then stat the file in the current
directory. Otherwise, you have to stat everything along the whole
path. The path you used for the AFS test had 13 elements in it, the
NFS case had 5 + 3 that were local, and the local case had only 3
elements in it.
Re: libmake
> It preprocesses the source to determine what include files it depends on
> and then builds a complete dependency tree. Then it does the usual make
> stuff. The NFS guys assure me that this involves billions and billions
> of stats. Oh yeah, it also reads a file which contains a list of
> directories that also might contain the source. lm looks in each of
> these directories and finds the newest version of the source. Typically
> this is about 10 directories. Hence lm does more stats than you can
> possibly imagine since it has to look for each file in 10 places...
yeah, and it has to do all that just to see whether the targets are up
to date. In other words, you practically have to do the entire build
process twice. wow isn't quite sufficient.
Given this fact, that all the source files are being read in order to
determine whether a target is up to date, and guessing that you
probably have lots of RAM on your workstation, I have to guess that
(as Dawn suggested) the source of the difference in performance is the
lack of VM integration in the version of AFS that you have (while NFS
and JFS do that for you). For small builds and good networks, that
will be a very large factor.