I recently had to create a series of Thread Dumps with SUP.
Here are the steps to get a thread dump from a running SUP mlsrv12 process:
- Download PsTools package including PsExec from Microsoft: http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
- Extract the PsExec to some folder, like C:\temp Go to Task manager and find out the PID of the MLSRV12
process. If the column is not seen, goto View – Select Columns – Choose PID.
- Alternatively, use the PSLIST tool to search for process id (Pid):
- C:\>pslist mlsrv12
- Open CMD prompt in the Administrators mode: right-click on “Command Prompt” and select Run As Administrator
- In this command prompt navigate to the folder where you extracted PsExec to and execute psexec -s
C:\Sybase\UnwiredPlatform\JDK1.6.0_26-x64\bin\jstack PID >> C:\threaddump.log
If SUP runs in 32-bit mode, use the corresponding jstack from the 32-bit JDK:
C:\Sybase\UnwiredPlatform\JDK1.6.0_26\bin\jstack PID >>
- Repeat the step above in interval every 10 to 30 seconds to get multiple thread dumps. This helps to understand which classes were executed in threads or were maybe hanging on some blocked objects:
- Here’re some Links about how to analyze Thread dumps:
10. With the below mentioned tools you can automate your analysis:
and it’s screenshot: