[OpenAFS] Extremely poor write performance.

Paul Blackburn mpb@est.ibm.com
Fri, 17 Jan 2003 08:07:35 +0000


Rubino Geiß wrote:

>Hi Paul,
>
>  
>
>>It seems that you looked at the performance of 1 client with 
>>1 server? Are your figures for a single access to a server?
>>    
>>
>
>I know that AFS is better performing then NFS if you count many clients
>especially if you have a read bias on these clients. We are using AFS
>because of that since a year. After all we had the NFS thing for over 10
>years ... it was real pain. 
>
>So, please note: you are completely right -- but for compiler research as we
>do 
>"make clean; make; make test ... minor editing ... do it all again" is a
>major task. So we are really suffering from a factor 10 to 100 slower delete
>performance!!! This is affecting single users, true, but it is a not
>neglectable cost and acceptance problem!
>
Hi Ruby,

My hope is that by Robin bringing this issue to openafs-info@openafs.org
a way can be found to improve this particular aspect of performance.

You are correct about the read bias. More than that, if you look
at the "RX bytes" and "TX bytes" in the output of "ifconfig" on
most machines you will probably find most client machines
naturally have this read bias.

My experience of compiling code using Transarc AFS on an AIX
machine with 1 GB of RAM and a 256 MB memory cache was that
it was signifigantly faster than using the same size disk cache
and more so if the cache was "primed" (or pre-loaded) with
something like:

   tar cf /dev/null /afs/@cell/src/$package/

That said, we all know that there is additional overhead using
any distributed filesystem over a local filesystem. So, if it
is particularily important to have fast build times you could
simply copy the source tree to a local filesystem and build it locally.

Give AFS authenticated logins to your team who are sharing
work on this compilation on the "build machine" and use local filespace.

You could even use rsync to mirror that local copy
into /afs/ to make a "reference" copy accessible to others in /afs/

    rsync -av --delete /src/$package /afs/@cell/src/reference

just an idea...
--
cheers
paul                                     http://acm.org/~mpb