IBM Support

Mustgather: Gathering data for high processor usage on Windows

Troubleshooting


Problem

If your Java application experiences high processor usage on a Windows operating system, there are a number of diagnostic data files that are useful for diagnosing the problem. This mustgather document describes about the diagnostic data files to be collected and the procedure to collect the same.

Resolving The Problem

The following set of diagnostic data files need to be collected manually during the time of high processor usage by your java application:

1. Javacores


2. Core dumps
3. Verbose GC logs (native_stderr.log)
4. Process logs (perfmon)
5. Paging usage logs (perfmon)
6. Processor monitor logs (perfmon)
7. CPU profiling logs (Tprof)
8. Netstat logs

For these diagnostic data files to be created, check that the system is configured correctly as per setup document.

Please collect the diagnostic data files manually during the time of high processor usage as per the below steps:

1. Generate at least three javacores and core dumps by using one of the following methods:

a) Use the key sequence Ctrl-Break in a console window.


b) Use the WSAdmin command if you are running IBM® WebSphere® Application Server.
c) If you have the MKS Toolkit installed, use the command:
kill -3 [PID_of_problem_JVM]
d) Use Windows Task Manager to manually generate the dumps

There needs to be 2 or 3 minutes time interval in between each set of dumps(javacore and core dump) generated. Otherwise spread the time interval across the issue time and generate the above set of diagnostic data files at each of the points below:
a) As soon as possible after the application starts.
b) When you notice a definite increase in processor usage, based on observation or monitoring tools.
c) When processor usage peaks and remains consistently high, based on observation or monitoring tools.

Please note that all the javacores and core dumps generated can be found in the current path and the names of them will follow the below format:
Javacore : javacore.<time stamp>.<id>.txt
Core dump : core.<time stamp>.<id>.dmp

For SDK 5 and 6 releases,

Run the JExtract tool against the generated core dump file using the following command:
<installpath>/jre/bin/jextract [coredump]

For 64bit JVM enabled with -Xcompressedrefs option, please use
<installpath>/jre/bin/jextract -J-Xcompressedrefs [coredump]

Save the resulting archive file, which has a name in the format of
core.<time stamp>.<id>.dmp.zip

From Java™ 7 SDKs on Windows platforms, you do not need to run the jextract utility.



2. Collect Verbose Garbage Collector data. This data is in the location specified during setup. Alternatively, the data is sent to the stderr output.

3. Collect process size monitoring data. The data is in the location specified during setup.

4. Collect paging size usage data. The data is in the location specified during setup.

5. Collect CPU monitoring (perfmon) data. The data is in the location specified during setup.

6. Run the tprof tool and profile the java application during the time of high processor usage.The tprof profile data is written to the location specified in tprof support document.

7. Collect the netstat log containing the snapshot of network activities, by using the following command:
netstat -an > netstat1.out

Please collect multiple netstat logs during the time of high processor usage.

After collecting all the above diagnostic data files, you can submit them for help with diagnosing the problem.

[{"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"100% CPU Usage","Platform":[{"code":"PF033","label":"Windows"}],"Version":"8.0;7.1;7.0;6.1;6.0;5.0","Edition":"J2SE","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg21222655