afs: Increase NUSERS to 2k 59/14959/3
authorAndrew Deason <adeason@sinenomine.net>
Tue, 3 May 2022 20:57:58 +0000 (15:57 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Tue, 24 May 2022 15:31:25 +0000 (11:31 -0400)
The current value of NUSERS (16) is very small when the client has a
large number of PAGs. When we have a few thousand (or even just a few
hundred), the length of the unixuser hash chains can be come long
enough to cause noticeable differences in performance. Looking up
unixuser structs is a very common code path, since we need to do this
for pretty much any file access that's not already cached at the VFS
layer.

To alleviate this, increase NUSERS to 2k. This is certainly not
necessary on all systems (such as those that never use authentication,
or only have a few PAGs), but the overhead is a very small constant
amount of memory.

Change-Id: I17b32f192656db9ffc97ac47b0923a02803977a3
Reviewed-on: https://gerrit.openafs.org/14959
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/afs/afs.h

index 6735c84..370b708 100644 (file)
@@ -92,7 +92,7 @@ extern enum afs_shutdown_state afs_shuttingdown;
 /* The basic defines for the Andrew file system
     better keep things powers of two so "& (foo-1)" hack works for masking bits */
 #define        NBRS            15      /* max number of queued daemon requests */
-#define        NUSERS          16      /* hash table size for unixuser table */
+#define        NUSERS          2048    /* hash table size for unixuser table */
 #define        NSERVERS        16      /* hash table size for server table */
 #define        NVOLS           64      /* hash table size for volume table */
 #define        NFENTRIES       256     /* hash table size for disk volume table */