proposed PAG handling changes for Arla

Neulinger, Nathan R. nneul at umr.edu
Mon Jul 26 21:26:10 CEST 1999



The performance hit can be QUITE noticeable. Random 20-30 second lockups on
a machine that gets thousands of logins a day from users with 24 hour
tokens, some with 30 day tokens... The in-memory structure gets  huge VERY
quickly.

On Solaris and some other architectures, transarc has implemented something
that scans the pags and gets rid of tokens in any unused pags. 

I wrote a script to clean them up on HP-UX that is specialized for our
situation (no users running stuff authenticated as other userids on the
problem machines). It is at:

	http://www.unixtools.org/~nneul/sw/afs/clean-unused-tokens.pl

It's designed for a hpux 10.20 box, though I'm sure it could easily be
adapted to others.

Running that out of cron on a regular basis has eliminated all the
performance problems/lockups.

NOTE - If you run that on a machine that has a huge pag/token list in memory
and it gets rid of a LOT of tokens/pags, you will get a couple of 40-60
second lock ups while the kernel compacts the hash. Once that is done, it
shouldn't lock up again unless you let it get huge again. 

-- Nathan

------------------------------------------------------------
Nathan Neulinger                       EMail:  nneul at umr.edu
University of Missouri - Rolla         Phone: (573) 341-4841
Computing Services                       Fax: (573) 341-4216


> -----Original Message-----
> From: Jeffrey Hutzelman [mailto:jhutz+ at cmu.edu]
> Sent: Saturday, July 24, 1999 3:58 PM
> To: Chris Wing
> Cc: arla-drinkers at stacken.kth.se
> Subject: Re: proposed PAG handling changes for Arla
> 
> 
> > So does the official AFS never get rid of tokens or PAG 
> data structures
> > unless there is always an explicit unlog? We run some 
> pretty big login
> > servers around here that use the latest 'official' AFS on Solaris or
> > HP-UX, and I haven't noticed them being particularly slow 
> to setpag(),
> > despite long uptimes and the fact that most of the users don't unlog
> > before logging out.
> 
> A PAG isn't a data structure; it's just a number, like a UID. 
>  The mere
> existence of a PAG doesn't occupy any resources -- the resources are
> occupied by the structure that holds a user's credentials.  
> Such structures
> are created as needed (when you set tokens), and are automatically
> garbage-collected from time to time, if they contain no 
> current tokens.
> The problem is that if a user doesn't unlog, the data 
> structure holding his
> credentials is not reclaimed until up to two hours after 
> those credentials
> expire.
> 
> The net effect is that you don't see problems on machines 
> with long uptimes
> but relatively few login sessions, but you _will_ see 
> problems on machines
> which have lots of users logging in and out all day.  Also, 
> the performance
> hit isn't on setpag(), which is essentially free; it's on looking up
> credentials for users.
> 
>  
> 





More information about the Arla-drinkers mailing list