Skip to main content

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.

Agent List

After updating the agent list or restarting a disabled agent, if it is not automatically displayed in the list, select Refresh icon.

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 icon Refresh.

Runtime boot environment

Home > Select Project > Instance Performance Management > Runtime ENV. Variable

Runtime boot environment

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

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.

Note

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.

Info

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.

System ENV. Variable

Home > Select Project > Instance Performance Management > System ENV. Variable

Boot environment

You can view environment variables for application execution.

Heap Histogram

Home > Select Project > Instance Performance Management > Heap Histogram

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).

Note

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
    example
    java -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-UNNAMED
    example
    java -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

Loaded Classes

You can see class information loaded in Java applications.

Library Version

Home > Select Project > Instance Performance Management > Library Version

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

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 Expand icon 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

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

DataSource Status

You can see the status of DataSource.

System GC

Home > Select Project > Instance Performance Management > System GC

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

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.

Note

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.

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 in WAITING state.

  • WAITING: It is waiting using the wait(), join(), and park() methods.

  • TIMED_WAITING: It is waiting using the sleep(), wait(), join(), and park() methods. The difference from the WAITING 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.

thread dump info

Stack

ItemPropertiesDescription
Thread IDthreadIdUnique ID allocated to the thread
Lock owner IdlockOwnerIdThread ID that holds the monitor lock state on the object on which the threads are blocked.
Waited countwaitedCountTotal number of WAITING and TIMED_WAITING states of the thread
Blocked countblockedCountTotal number of Blocked states of the thread
Waited timewaitedTimeElapsed time (milliseconds) that the thread has been in the WAITING state. It returns -1 when the thread contention monitoring is disabled.
Thread CPU timethreadCpuTimeIt displays the total CPU time (nanoseconds) of the thread calculated in milliseconds. It returns -1 when the CPU time measurement is disabled.
StatusthreadstateThread status
Blocked timeblockedTimeElapsed time (milliseconds) that the thread has been in the BLOCKED state. It returns -1 when the thread contention monitoring is disabled.
Thread namethreadNameUnique name of the thread
Lock namelockNameString indicating that the thread's input is blocked or a monitor lock prompts for notification via the Object.wait method.
Lock owner namelockOwnerNameName of the thread that holds the monitor lock on the objects on which the thread is blocked.
Thread user timethreadUserTimeThe CPU time (nanoseconds) for which the thread executed in user mode that is calculated in milliseconds.
Note

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.