Debugging High CPU Utilization Issues
The CPU utilization of an AppNode for a particular service depends on the complexity of service implementation, payload, workload, number of services deployed on the AppNode, and the CPU or Memory resources made available to the AppNode.
Before you begin Assuming all the components of the engine are tuned for debugging high CPU utilization issues on the
appnode, collect the following data that helps in further debugging and understanding the issues.
- Procedure
- Capture thread dumps for analyzing the thread state and calls. Capture five thread dumps at an interval of 5 seconds each. Redirect all the collected threads dumps to separate files.
The thread dumps can be captured using the jstack utility shipped with JDK.
./jstack <PID of appnode> > ThreadDump_n.txtThe thread dumps can be captured through JConsole or JVisualVM utilities. - Capture top CPU consuming threads data for 5 minutes run by using a
jvmtop utility.
For more information about the jvmtop utility, see support article KB000034702.
./jvmtop <PID of appnode> > JVM_topthreads.txt - Capture method level CPU profiling data for 5 minutes run by using a
jvmtop utility.
./jvmtop --profile <PID of appnode> > JVM_CPUProfile.txt - Capture AppNode logs for the test run duration.
- Capture the CPU and memory utilization of the
AppNode for 5-minutes run.
The data can be captured through a top utility on Unix.
top -p <PID of appnode> > top_appnode.txt
The data can also be captured through JConsole or JVisualVM utilities. - Capture the AppNode config.ini and TRA file of the AppNode. This helps analyze the JVM parameters and other engine tuning parameters.
- Capture system configurations of
servers such as CPU details, RAM, and number of cores where,
TIBCO BusinessWorks™ Container EditionAppNodes, external services, and load generator are running. Capture details of
/proc/meminfo and
/proc/cpuinfo files.
cat /proc/meminfo and cat /proc/cpuinfo