Collecting data for Java performance issues
Merative ™ Social Program Management is now Cúram™ by Merative
Collecting data for Cúram Java performance issues
Question & Answer
Question
What information should be collected to help with diagnosing Cúram Java performance issues?
Answer
Java performance issues might result in Java dumps being created automatically or might require Java dumps to be manually generated in aid of problem determination.
There are two types of Java dumps:
- Thread or core dumps - these dumps tend to be small and easy to manage (e.g. they are in text format).
- Heap dumps - these dumps can be very large and difficult to manage once generated; e.g. due to their size and the resources needed to process them.
The behaviour of Java dump generation varies by version, vendor, and platform. These variations can include:
- How dumps are generated: automatically or manually
- Where dumps are stored
- How dumps are named
Consult the Java documentation for your context to find the details for the above variations. For instance, for Cúram Java see the documentation. For Oracle Java see the Oracle Java site.
In the context of Cúram, the concern is with Java performance issues around hangs and resource usage (e.g., memory and CPU), which might manifest in application server crashes. Java crashes may be caused by a number of issues; for example, JVM or external errors. There is some overlap in the two broad categories of Java performance symptoms. Use the following as guidelines:
1. Application server crash, unresponsive system (hung threads or CPU usage close to 100%), system throughput not increasing with load despite spare CPU capacity, and transaction timeouts reported in the application server logs:
- Gather verbose garbage collection trace data and other artifacts as discussed in WebSphere Data Collection MustGather or WebLogic Data Collection MustGather as is appropriate.
- Typically, you should gather several thread dumps (e.g. 3) during a hang situation (e.g. over a 5 minute span). These dumps will provide a basis of comparison to see if activity or changes are happening in the system; that is, represents an actual hang situation. The IBM WAIT tool is a very handy way to gather these dumps and provides online analysis of same. See wait.ibm.com for more information on using this tool. IBM WAIT can also gather system performance usage on UNIX, which can also be very helpful.
2.** Application server crash, unresponsive system (CPU usage close to 100%) and out of memory errors in the application server logs:
- Gather verbose garbage collection trace data and other artifacts as discussed in WebSphere Data Collection MustGather or WebLogic Data Collection MustGather as is appropriate.
- Trigger a Java heap dump or if one is automatically generated, e.g., due to heap exhaustion, use it.
- Provide screenshots from your chosen heap analyzer tool. As mentioned above, heap dumps can be difficult to manage and resource intensive. Sometimes, screenshots (e.g. tree view of the heap) from your heap analyzer tool can help narrow down where the issue is.
What to do next
Once you have collected the preceding information, you can submit the diagnostic information to Merative support, preferably in a compressed format.
You can submit files on a support case via the Cúram Support.
For a listing of all technotes, downloads, and educational materials specific to the Cúram, search the Cúram product support site.
Document Information
More support for:
Software version:
All Version(s)
Operating system(s):
AIX, HP-UX, Linux, Solaris,Windows, z/OS
Modified date:
28 January 2020