We have an intermittent performance issue on one of our servers reported by a couple of users when using one particular XPages application. My first thought was that it was related to Java Memory usage and poor code recycling so I'm starting there. At the moment, according to Mark Leusink's fantastic Debug Toolbar, the usage data for the server (64-bit Windows machine with 32Gb physical RAM) looks like this:
I'd like to confirm my understanding of the figures:
- Maximum Heap Size - I'm okay with this and know how to change it (and that recommended setting is a quarter of the available RAM but due to low user population on this server, I'm sure 2Gb is more than adequate)
- Total Allocated - this seems low to me but am I correct in that this is automatically set by the server and that, if more Java memory is needed then it will allocate more (up to the amount specified in the maximum heap size?) Does this happen only if garbage collection cannot free enough space to load a new java object?
- Used - I believe this shows the memory being used across the server and not just in the application containing the debug toolbar itself. Will this only show the memory being used by the Domino HTTP task (so all XPages apps) or can it be affected by Java agents too?
Bonus questions:
- How is the "total allocated" figure initially set? On a development server we have (with one current user - me) the figure is currently set to 256M but I can't relate this back to any Notes.ini parameters. (Also, is there a recommended value for this figure?)
- If I'm correct about garbage collection running when the "total allocated" figure is reached, then, presumably, a low figure will force it to run more often. Will this have an adverse affect on server performance?
- Is the fact that we are also running Traveler on this server (albeit with only about 9 users) something we should take into consideration?
Thanks