[OpenAFS] Performance Questions / Optimizatoin

Penney Jr., Christopher (C.) cpenney@ford.com
Thu, 22 Jan 2004 08:49:55 -0500


> -----Original Message-----
> From: Penney Jr., Christopher (C.) 
> Sent: Friday, January 16, 2004 9:49 AM
> To: openafs-info@openafs.org
> Subject: [OpenAFS] Performance Questions / Optimizatoin
> 
> 
> I'm experimenting with OpenAFS in an enviornment where large 
> files (~500mb frequently, but sometimes quite a bit larger) 
> would be moved around.  I understand that this is not an 
> optimal use of AFS, but we are interested in the security of 
> AFS.  I want to get an idea of if the performance I'm getting 
> in my little sandbox is low/high/normal.
> 
> Right now I have a couple of Sun 480R boxes with dual CPUs, 
> 4GB RAM, and GigE.  They are running Solaris 9 with recent 
> patches.  I've bumped the TCP window size to 64k.  Using ttcp 
> (ttcp -r on one and ttcp -t -n20000 on the
> other) I can get into the 60MB/s range on TCP throughput.  
> For disk all I have right now is a stripe of two disks.  When 
> I run 'iozone -c -e -i 0 -s 512m -r 8k -f 
> /vicepa/tmp/testfile' I can create a 512MB file at about 
> 75MB/s (ufs logging off).
> 
> With NFS if I do the above iozone test I can read and write 
> at about 45MB/s. That's seems a bit low, but I'm not running 
> on optimal disk setup.
> 
> With AFS the client has a 1GB AFS cache on /var, which is 
> mirrored.  I'm using the following options to AFSD: -stat 
> 2000 -chunksize 19 -daemons 6 -volumes 128 -afsdb -nosettime. 
>  The main difference from the built in options is the 
> chunksize of 512K.  Using the above iozone command I get 
> about 33MB/s writing to /var.
> 
> When I do the iozone command to write to my AFS space I get 
> about 16MB/s as long as the file fits in cache.  I'm noticing 
> the client is periodicaly pushing data to the server from 
> cache at about 20-25MB/s.  When I try using a memory cache I 
> only get 8MB/s writing and I get about the same if cache is 
> full (like having a 100MB cache and writing a 512MB file).  
> If I ensure cache is empty and do the iozone read test I get 
> about 12MB/s.
> 
> So what I'm observing is:
> 
> * Read performance when a file isn't in cache is only about 12MB/s
> * Write performance when cache is full is about 8MB/s
> * When using a memory cache write() doesn't return until data 
> is committed to the file server simulating a disk cache being full
> * Write performance to cache seems substantally worse than 
> the actual disk performance (of course some is to be expected)
> 
> My questions:
> 
> Are the performance numbers for out of cache throughput (esp. 
> with reads) something that I can improve with tweaks or is 
> that more or less the limit of AFS when files are not in 
> cache?  I'm not sure I can live with only getting 12MB/s 
> reading a file from AFS space.
> 
> If we used AFS we'd have huge caches so that if several 
> gigabyes were being written they would fit in cache.  What 
> kind of write performance can we expect with really nice disk 
> subsystems for the afs cache (I assume there is a limit)?  
> I'd like to be able to write at least 50MB/s to afs cache... 
> is that possible?
> 
> Thanks,
> 
>    Chris Penney
>    cpenney@ford.com


I never really saw any responces to this save one personal reply, though a
couple of other recent threads have been interesting.  It seems that about
25MB/s (some have said as high as 35MB/s) is about the limit of reads/writes
to a given file server.  Is that correct?

In terms of local performance, if you had a more or less optimal filesytem
for afs cache (lets say a SAN attach RAID-0 stripe capable of well over
100MB/s) what would you see reading and writing to cache assuming you never
filled it up and were doing sequential reads/writes?

   Chris Penney
   cpenney@ford.com