Software Required:
- Process Explorer (SysInternals): http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Situation
A JVM in your Maximo environment is using a lot of CPU time. Task Manager only shows basic information about the underlying java.exe process.Step 1: Find the Thread ID
Download and run Process Explorer (procexp.exe). Find the Java process with the high CPU usage and select Properties from the right-click menu options.
Click on the Threads tab. And find the thread with the high CPU usage.
ThreadID 8620 has the high CPU usage (2nd column) |
Step 2: Obtain a JavaCore Heap dump
Open a command prompt and move to the WebSphere AppServer bin directory. Run the wsadmin command (you will need to enter the WebSphere username and password)By default you should be at teh Deployment Manager level. Issue the following command to set the JVM that you want a thread dump from (in this example the JVM is MXPROD_UI2)
set jvm [$AdminControl completeObjectName type=JVM,process={JVM_NAME},*] |
$AdminControl invoke $jvm dumpThreads |
Step 3: Locate thread information in the dump file
Find the hexadecimal value of the ThreadID (TID).
TID 8620 = TID 0x21AC |
Open the dump file in a text editor and search for the TID. You should get a snippet of the stack trace that the TID is currently running. In this example we can see that the high CPU usage has been caused by the Asset Location DrillDown dialog trying to load.