Instance Performance Management
Home > Select Project > Instance Performance Management
You can see the application environment along with the performance-related settings.
Agent List
You can check the list of agents assigned to the project in the application list on the left of the screen. If you select an individual agent, you can view information for environment variables, agent settings, and performances set on the right of the screen.
After updating the agent list or restarting a disabled agent, if it is not automatically displayed in the list, select .
Detailed information of the agents and applications
On the right of the screen, you can see detailed information of agents and applications.
-
You can filter the desired items through the text field on the upper right of the screen.
-
If changes to agents and applications located on the monitored server are not automatically applied, select Refresh.
Agent-related items
Runtime boot environment
Home > Select Project > Instance Performance Management > Runtime ENV. Variable
You can view environment variables for agent execution. You can see the version, installation path, name, and IP address of the agent.
Agent log
Home > Select Project > Instance Performance Management > Agent Log
You can view the agent logs stored on the monitored server. The name of the log file is in the format of whatap-YYYYMMDD
.log. You can select each log to access information about the errors and events captured in the logs.
For the agent settings for the log, see the following.
Agent CONFIG.
Home > Select Project > Instance Performance Management > Agent CONF. Old
You can add, modify, or delete the agent configuration options without directly modifying the whatap.conf file located on the monitored server.
For the agent configuration, it is recommended to use the Management > Agent CONF. menu that has improved the usability and functionality. On the upper right of the screen, select New agents setting. For more information, see the following.
Application-related items
System ENV. Variable
Home > Select Project > Instance Performance Management > System ENV. Variable
You can view environment variables for application execution.
Heap Histogram
Home > Select Project > Instance Performance Management > Heap Histogram
You can view the status of heap occupied objects (sizes for each object in heap memory) in the memory of the JVM (Java Virtual Machine).
Java versions 6 to 8 support basic functions without the JVM options. However, for some Java versions, the JVM options must be applied as follows:
-
Java 9 to Java 15
-Djdk.attach.allowAttachSelf=true
examplejava -javaagent:{WHATAP_HOME}/whatap.agent-X.Y.Z.jar -Djdk.attach.allowAttachSelf=true -jar {application.jar}
-
Java 16 or later
-Djdk.attach.allowAttachSelf=true
--add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMEDexamplejava -javaagent:{WHATAP_HOME}/whatap.agent-X.Y.Z.jar -Djdk.attach.allowAttachSelf=true --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED -jar {application.jar}
-
It does not support Java 5 or earlier and IBM Java.
Loaded Classes
Home > Select Project > Instance Performance Management > Loaded Classes
You can see class information loaded in Java applications.
Library Version
Home > Select Project > Instance Performance Management > Library Version
You can see the versions of the libraries that make up Java applications.
Thread List/Dump
Home > Select Project > Instance Performance Management > Thread List/Dump
You can view snapshot information of all threads in the Java process. It can be used to diagnose the performance issues in Java applications. You can see the thread dump information by selecting of each thread in the thread list. For more information, see the following.
Opened Socket Count
Home > Select Project > Instance Performance Management > Opened Socket Count
You can see the socket information opened by the Java application to perform TCP functions.
Method Performance
Home > Select Project > Instance Performance Management > Method Performance
You can see detailed information about the method being executed in the Java application.
DataSource Status
Home > Select Project > Instance Performance Management > DataSource Status
You can see the status of DataSource.
System GC
Home > Select Project > Instance Performance Management > System GC
You can collect and remove memory objects (garbage) that are no longer needed for the dynamically allocated memory in the Heap area of the JVM (Java Virtual Machine). If you select RUN, the GC process is performed and you can see the memory capacity before and after execution.
Heap Dump
Home > Select Project > Instance Performance Management > Heap Dump
If any problem occurs such as a memory leak while running the Java application, you can generate its dump file for analysis of the problem. Select Dump Heap.
This function is supported in Java agent 1.5.2 or later. Set the heapdump_enabled
option to true
in the agent configuration. Select Dump Heap to enable the function to create a heap dump file. It does not automatically generate a heap dump each time, and this option does not affect the performance. However, dump acquisition may affect the performance.
Obtaining a heap dump requires a significant burden. Separate from the burden, because the execution of the application code is stopped (stop the world) until all heap dumps are extracted, the perceived performance difference by the user may be more severe.
Throttling CONF.
Home > Select Project > Instance Performance Management > Throttling CONF.
You can see the agent settings for load control of Java applications, and then set the related options. For more information about the agent settings for load control, see the following.
Analyzing the thread dump
It guides you to the information that can be checked in the Thread list/dump tab.
Thread status
The states of the thread are declared as enumerated types named State
in the java.lang.Thread
class.
-
NEW
: The thread has been generated but not run. -
RUNNABLE
: The CPU has been occupied and the tasks are being performed. The resource allocation by the OS may result inWAITING
state. -
WAITING
: It is waiting using thewait()
,join()
, andpark()
methods. -
TIMED_WAITING
: It is waiting using thesleep()
,wait()
,join()
, andpark()
methods. The difference from theWAITING
state is that it is waiting for a given time. The waiting state can be released by the time as well as external environment change. -
BLOCKED
: It is waiting for the locked object to be released. -
TERMINATED
: Execution has been completed.
Thread dump information
You can check the thread dump information by selecting the button for each thread in the thread list.
Stack
Item | Properties | Description |
---|---|---|
Thread ID | threadId | Unique ID allocated to the thread |
Lock owner Id | lockOwnerId | Thread ID that holds the monitor lock state on the object on which the threads are blocked. |
Waited count | waitedCount | Total number of WAITING and TIMED_WAITING states of the thread |
Blocked count | blockedCount | Total number of Blocked states of the thread |
Waited time | waitedTime | Elapsed time (milliseconds) that the thread has been in the WAITING state. It returns -1 when the thread contention monitoring is disabled. |
Thread CPU time | threadCpuTime | It displays the total CPU time (nanoseconds) of the thread calculated in milliseconds. It returns -1 when the CPU time measurement is disabled. |
Status | threadstate | Thread status |
Blocked time | blockedTime | Elapsed time (milliseconds) that the thread has been in the BLOCKED state. It returns -1 when the thread contention monitoring is disabled. |
Thread name | threadName | Unique name of the thread |
Lock name | lockName | String indicating that the thread's input is blocked or a monitor lock prompts for notification via the Object.wait method. |
Lock owner name | lockOwnerName | Name of the thread that holds the monitor lock on the objects on which the thread is blocked. |
Thread user time | threadUserTime | The CPU time (nanoseconds) for which the thread executed in user mode that is calculated in milliseconds. |
For more information about the thread information, see the following link.
Stack trace
It displays the stack trace when any exception occurs. The stack frame list that contains information about the methods called by the code.