Some Users Reporting Bad Performance
This recipe provides a strategy for identifying which JVM a user is on in order to track down performance issues reported by that user.
Strategy 1: Add Logging of JSESSIONID in IHS to Identify the clone-id of the JVM the user is on
- In the
conf/httpd.conf
file, find the CustomLog directive for youraccess_log
. By default this is:
The last part of that line, in this example "common" is the name of the LogFormat to use. Find this LogFormat. By default, this may be:CustomLog logs/access_log common
Change this to, for example:LogFormat "%h %l %u %t \"%r\" %>s %b %D \"%{WAS}e\" %X %I %O %^FB" common
LogFormat "%h %l %u %t \"%r\" %>s %b %D \"%{WAS}e\" %X %I %O %^FB JSESSIONID=\"%{JSESSIONID}C\"" common
- Save
httpd.conf
and restart the IHS servers (either gracefully or fully).
This will print out the cookie due to
JSESSIONID=\"%{JSESSIONID}C\"
. This is helpful because the
JSESSIONID
string contains the clone/JVM the user has
established their session with. This way if a user is having problems
the administrator will know which clone the user was pinned to. This
helps immensely with troubleshooting because the administrator knows
which log file they need to look at when the error occurs. Test this out
in the test environment first. Then in production make sure disk space
is monitored to ensure that the disk does not run out of space because
of the additional logging data.
Monitor
access.log
on the IHS server. Use the clone-id in the
JSESSIONID
cookie to identify the JVM. Conduct appropriate
troubleshooting steps on that JVM to understand the users' performance
problems.
Caveat
Whilst the JSESSIONID
is only an identifier, the
administrators need to ensure that file system security is locked down
so that other users on the node do not have access to the IHS logs.