What is the Webagent cache size and memory used?

Document ID : KB000052603
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

Depending on the 2 ACO parameter (MaxResourceCacheSize, MaxSessionCacheSize) the agent cache size will vary, it can be interesting to know what is the memory used by the Webagent cache.

The session cache is used for both authentication and authorization.

Ressource Cache:

Stores results of IsProtected () for a resource. Reduces the number of calls to the Policy Server when the same resource is being accessed.

Session Cache:

  • Level 1: Stores results of Login ()/Validate () call for a user. Reduces the number of calls to the Policy Server when the user s session spec has to be validated.

  • Level 2: Stores results of IsAuthorized () call that was done for an authorized user accessing a resource. Reduces the number of calls to the Policy Server when the auhorization decision has to be made.

Solution:

Amount of RAM used by one entry on each on this cache (MaxResourceCacheSize & MaxSessionCacheSize):

  • Resource cache: ((nentries+11)*2048) + 65536 + (nentries+nentries/2) *sizeof(void*) + nentries*32 nentries = the value of MaxResourceCacheSize

  • Authentication cache: ((nentries+11)*3328) + 65536 + (nentries+nentries/2) * sizeof(void*) + nentries*32 nentries = the value of MaxSessionCacheSize

  • Authorization cache: ((nentries+11)*3328) + 65536 + (nentries+nentries/2) * sizeof(void*) + nentries*32 nentries = the value of MaxSessionCacheSize


The value for sizeof(void*) is OS dependant (memory address size). On Solaris Sparc 9 the value is 4.

Following is an example program (test) to determine the sizeof(void*).

 #include <stdio.h>   
 main()   
 {   
 printf ("sizeof(void *) = %d\n", sizeof(void*));   
 }