[OpenAFS] Optimization for Throughput

Joseph Kulisics kulisics@chem.ucla.edu
Tue, 10 Oct 2006 10:14:36 -0700 (PDT)


Hi,

   I've installed and configured OpenAFS, and I've been using it for about 
four months. As I've expanded the installation and added new users, I've 
begun to receive requests to add entire offices and laboratories. In 
preparation to add a very large laboratory, I started to plan how to serve 
data to the users of the laboratory. My plan was to convert the 
laboratory's existing server into a fileserver in my cell.
   I created a volume to store the laboratory's data while I reconfigure 
their server, and I started to copy their files into the volume. I became 
concerned that the throughput seemed low, and when I started to test the 
throughput copying files from an unused AFS server to an AFS client's 
local disk, I found that the throughput was about a third or a quarter of 
the throughput between the same server and client using scp from a non-AFS 
partition on the server to the client's local disk. (In the experiments, I 
was transfering a 900 Mb file from one machine to another.)
   I had a few questions, and I was hoping that someone could point me to 
the correct guides or answers.
   Is there a general reason for the low throughput, or does my description 
suggest that there might be something wrong with my cell configuration? I 
guessed that there might be some kind of performance hit associated with 
AFS.
   Is there a way to optimize the server or client for high throughput? I 
was asking because the data for the laboratory might include some files as 
large as 1 Gb, and I wanted to give them as great throughput as possible 
in case they needed to copy files from the server. I've been experimenting 
with the configuration of the client and server, but I haven't found any 
combination of options that seems to noticably improve throughput. I have 
to admit that I've been firing blindly; I'm not sure what option might 
improve throughput. On the client, I've been experimenting mostly with the 
chunksize and the number of servers, and on the server, I've been 
experimenting with the rxpck, p, and udpsize options. Am I on the right 
track?
   I've been thinking about it, and I suppose that when properly used, 
users won't be copying files to AFS or from AFS very often; I guess that 
they should normally be using the files in place in AFS. Is AFS instead 
optimized for this kind of use? Does anyone have experience using large 
files in place in AFS? Is the performance good?
   If there's a performance tuning guide, a FAQ, or a message thread on the 
subject, please, let me know. I looked around the web a lot, but I didn't 
find any guide. (Maybe I just haven't found the right search words.)
   Thanks,

   Joseph Kulisics