Visit Azul.com Support

Using ZVision Robot

Note
As of Azul Platform Prime 23.08.0.0, ZVision and ZVRobot components have been deprecated and are no longer actively developed. While we still support these components, we encourage users to switch to Java Flight Recorder(https://docs.azul.com/prime/Java-Flight-Recorder), as ZVision and ZVRobot are planned for End-of-life with Azul Platform Prime 24.02.0.0 (February 2024).

The following sections describe configuring and using the Azul ZVision Robot (ZVRobot) profiling and diagnostic snapshot collection tool for Azul Zing Builds of OpenJDK (Zing).

ZVRobot Overview

ZVRobot provides a method to collect metrics about the state of a running application and the underlying JVM. It uses the same data collection mechanisms as ZVision but stores each data snapshot persistently to a file. ZVRobot automates collecting and persistently storing the data displayed with a manual ZVision page refresh. The data stored in the files can be viewed through a browser, simulating the ZVision environment. You can set which ZVision pages to collect and, how often and how many times you want to capture the page data.

Use the ZVRobot data to help you determine how to tune command line options and optimize your code performance. ZVRobot data includes:

  • Complete internal and environment settings inventory

  • Sample-based method profiling

  • JVM internal subsystem behavior, including GC and the runtime compiler

  • Lock and monitor usage metrics

  • Thread behavior

ZVRobot is a simple http client that collects ZVision data from the ARTAPort according to the criteria specified in the ZVRobot.prop file and outputs it to a specified directory as a set of time stamped XML files. It has a very low impact on performance. The ZVRobot client can be started and stopped at any time during a JVM session.

ZVRobot requires JVM host connection information:

  • JVM host IP address and JVM host ARTA port

  • The Azul Run Time Analysis (ARTA) port is the application host port specified with the -XX:ARTAPort command line.

ZVRobot output is viewable from supported Web browsers with network access to the file system where the ZVRobot files are located. The supported browsers include:

  • Microsoft® Internet Explorer 6 (or later) on Windows 2000, Windows XP, Windows Vista, or Windows 7

  • Mozilla Firefox 1.0.3 (or later) on all supported operating systems

  • Apple Safari™ 2.0 (or later) for macOS

Azul Customer Support

If you are providing data for problem resolution for a case with Azul customer support:

  1. Capture the requested data in its entirety using ZVRobot.

  2. Compress the data into zip or gzipped tar file.

  3. Send it by e-mail to [email protected] or FTP upload for analysis.

ZVRobot Benefits

ZVRobot can be used in a few ways, think of ZVRobot as a flight recorder, persisting away data that can be reviewed later for offline analysis.

ZVRobot data includes:

  • Complete internal and environment settings inventory

  • Sample-based method profiling

  • JVM internal subsystem behaviour, including GC and the runtime compiler

  • Lock and monitor usage metrics

  • Thread behavior

Use ZVRobot

  • In development, use the ZVRobot data to help you optimize your code performance by monitoring locking behavior, finding hot methods, and monitoring other behaviors such as: per thread stack trace; tick profile; I/O wait; object size and count profile; live objects type velocity; deadlocks; monitor contention; memory usage; GC; Compilation; etc.

  • In the Operations Center, when an alert is triggered, use a script in the management tool to start an instance of ZVRobot to record what is going on for a set period (controllable in the ZVRobot.prop file). This ensures that ZVRobot has data from when the incident occurred.

  • In preproduction, use ZVRobot to take samples of the application before implementing major changes or code changes. Compare the ZVRobot data with samples taken with previous application code versions. This helps to identify if code changes have changes the code profile, locking or allocation rates.

  • Periodically (weekly) take a few minutes of samples as a reference point, these reference points can be used to compare peak request loads as well as be used for long term capacity planning with your other tools.

Configuring the Azul Platform Prime Virtual Machine to Use ZVRobot

ZVRobot must be connected to the JVM you are monitoring. The following command enables ZVRobot to communicate with the JVM on the specified port of the host where the JVM is running.

Add the following command line option to your Java command string that starts the JVM and your Java application.

 
-XX:ARTAPort={off|<port>|any}

Supply a port number or set this option to any to enable the communication between JVM and ZVRobot. The ARTA (Azul Run Time Analysis) port provides internal API communication between ZVision, ZVRobot, and JVM.

Valid options include:

  • off: Default. JVM does not open a communication port and ZVRobot cannot communicate.

  • <port>: port number for ZVRobot to use on the host.

  • any: ZVRobot uses any free port.

The port number opened by the JVM is echoed to stderr at startup. This setting is useful when starting multiple JVMs on the same host.

Download ZVTools

From Azul Platform Prime 23.07.0.0, ZVTools is not included in the Azul Platform Prime package and must be downloaded separately.

ZVTools distribution can be found here:

https://ftp.azul.com/releases/Zing/ZVision/ZVTools.zip

Installing and Configuring ZVRobot

Install ZVRobot and modify the ZVRobot properties file to specify the connection to the JVM and select the type of data to collect.

  1. Locate the ZVRobot directory within ZVTools.zip.

  2. Copy the ZVRobot directory to a host machine where either a Java Development Kit (JDK) or Java Runtime Environment (JRE) is installed.

    Note
    For efficient use, move the ZVRobot files to a different machine than the JVM host or Java application you are monitoring. The ZVRobot machine must be networked to the JVM host machine it is monitoring.
  3. Locate and open the ZVRobot.prop file. The file is in the top level ZVRobot directory. The file has two sections:

    • Configuration – contains required information you must provide for ZVRobot to communicate with the JVM and options that control collection behavior. See Step 4.

    • Page Types to Collect – contains a list of ZVision pages. Some pages are already configured to be collected. You can turn on or off the collection of any ZVision page.

  4. Provide the configuration information. In the top section of the file, enter appropriate values for the following variables:

    • ZVRobotVars.HOST: IP address of the application host where the JVM is running.

    • ZVRobotVars.PORT: Port on the host machine that was specified with the -XX::ARTAPort command line option when the JVM was started.

    • ZVRobotVars.THSIZE: The number of top-level items to request for display in a page. For example, for:

      • IO_OPEN_SOCKETS, this is the number of sockets.

      • THREADS_LIST and THREADS_STACK_TRACE, this is the number of threads to list in a single page.

      • LEAK_SITES, this is the per page number of location in the code identified as sites where memory is being leaked.

    • ZVRobotVars.SECONDS: The interval in seconds between sequential requests by ZVRobot to the JVM.

    • ZVRobotVars.COUNT: The number of snapshots to gather. A negative number is interpreted as a request for an infinite number of snapshots. If you use this option, stop the ZVRobot process with CTRL-C from the command line.

  5. Select the metrics to collect. In the third section of the file, remove or add the pound (#) character to enable or disable, respectively, collecting a page’s data. For example:

    • To enable a <metric_name> metric, the line in the file should be:

       
      <metric_name>=http://${HOST}:${PORT} ${SECONDS} ${COUNT}
    • To disable the <metric_name> metric, comment out the line by adding the pound sign (#) in the line. The line in the file should be:

       
      # <metric_name>=http://${HOST}:${PORT} ${SECONDS} ${COUNT}

Running ZVRobot and Collecting Data

ZVRobot communicates with the JVM using the host:port combination specified in the ZVRobot.prop file. The collected metric snapshots are written to a directory suffixed with the date and time when ZVRobot starts.

In the command line for the machine where ZVRobot is installed, type the following command to run ZVRobot:

 
java -jar ZVRobot-<version>.jar <directory> ZVRobot.prop

where:

  • ZVRobot-<version>.jar is the JAR file that contains the ZVRobot classes

  • <directory> is the directory in which ZVRobot creates the metric collection directory. You must have write permission for this top level directory. Use any as the directory and ZVRobot creates the metric collection directory in the current working directory.

  • ZVRobot.prop is the edited ZVRobot property file A directory is created that contains the XML-formatted metric snapshot files as well as manifest files that contain a list of hyperlinks to these metric files.

Note
A sample start up script startsample.sh is provided to run ZVRobot. The script uses the provided sample ZVRobot.prop file that has a set of default metrics selected. To run this test script, modify the configuration variables in the sample ZVRobot.prop file, particularly the host and port name.

Enable or Disable Tick Profiler

The Tick Profiler is enabled and disabled using the Java command line option, UseTickProfiler. Default for UseTickProfiler is false, which means the Tick Profiler will not collect profiling information.

  • To enable the Tick Profiler, use -XX:+UseTickProfiler. (set to true)

  • To disable the Tick Profiler, use -XX:-UseTickProfiler. (default, set to false)

Viewing ZVRobot Snapshot Data

ZVRobot outputs two sets of files: manifest .html files and page .xml files. View the files through a browser.

  1. Navigate through your directories to the ZVRobot directory.

  2. Select a date/time stamp directory

  3. Select a manifest or page file to view.

  4. Select Open with a browser.

ZVRobot Snapshot Data

The ZVRobot interface consists of a series of windows that format the collected information for a given metric in the same manner as the equivalent metric that is collected in ZVision. The rest of the section describes the ZVRobot windows.

Sample AzulZVRobotIndex.html file

The ZVRobot manifest, AzulZVRobotIndex.html, lists hyperlinks to the manifest files specified by the appropriate metric for the corresponding ZVision window in the ZVRobot properties file, ZVRobot.prop. Click a hyperlink to display the manifest file for a specific ZVRobot metric. The following table describes:

  • ZVRobot metric. Click the associated hyperlink to display a description of the metric.

  • Name of the corresponding ZVRobot metric specified in ZVRobot.prop.

  • Name of the corresponding manifest file listed in AzulZVRobotIndex.html.

See Section Metric Page Name File Created

ZVRobot Snapshot Data (this section)

ZVProperties.prop Metric

AzulZVRobotIndex.html Manifest File Name

Configuration Window

ZVRobotPage.CONFIG_ PROCESS

Manifest.Frame.CONFIG_PROCESS.html

Environment Variables Window

ZVRobotPage. ENVIRONMENT_VARIABLES

Manifest.Frame.ENVIRONMENT_ VARIABLES.html

HotSpot Flags Window

ZVRobotPage.HOTSPOT_ FLAGS

Manifest.Frame.HOTSPOT_FLAGS.html

Statistics Window

ZVRobotPage.RUNTIME_ STATISTICS

Manifest.Frame.RUNTIME_ STATISTICS.html

Settings Window

ZVRobotPage.SETTINGS_ GC_LOG

Manifest.Frame.SETTINGS_ GC_LOG.html

Features Window

ZVRobotPage.FEATURES

Manifest.Frame.FEATURES.html

Threads List Window

ZVRobotPage.THREADS_ LIST

Manifest.Frame.THREADS_ LIST.html

Stack Trace Window

ZVRobotPage.THREADS_ STACK_TRACE

Manifest.Frame.THREADS_STACK_TRACE.html

Deadlocks Window

ZVRobotPage.THREADS_ DEADLOCKS

Manifest.Frame.THREADS_ DEADLOCKS.html

Contention Window

ZVRobotPage.THREADS_ MONITOR_CONTENTION

Manifest.Frame.THREADS_ MONITOR_CONTENTION.html

Tick Profile Window

ZVRobotPage.TICKS_ PROFILE_TAG

Manifest.Frame.TICKS_PROFILE_TAG.html

Tick Profile Window

ZVRobotPage.TICKS_ PROFILE_FLAG

Manifest.Frame.TICKS_PROFILE_LOG.html

Memory Summary Window

ZVRobotPage.MEMORY_ SUMMARY

Manifest.Frame.MEMORY_SUMMARY.html

GC Summary Window

ZVRobotPage.MEMORY_GC_ SUMMARY

Manifest.Frame.MEMORY_GC_ SUMMARY.html

GC History Window

ZVRobotPage.MEMORY_GC_ HISTORY

Manifest.Frame.MEMORY_GC_ HISTORY.html

Compilers – Task Window

ZVRobotPage.COMPILER_ TASKS

Manifest.Frame.COMPILER_ TASKS.html

Class List Window

ZVRobotPage. APPLICATIONS_CLASS_ LIST

Manifest.Frame.APPLICATIONS_ CLASS_LIST.html

Configuration Window

The Configuration window provides a detailed view of all the process settings for the JVM.

Click a hyperlink in the left column to display the collected information for a snapshot. The number of snapshots and the interval between snapshot collection is specified by the ZVRobotVars.COUNT and ZVRobotVars.SECOND variables in the ZVRobot.prop file.

The following table describes the Configuration window elements.

Element Description

Version

JVM version.

Command line

List of classes and command line options used to launch the Java application.

Prepended flags / filename

List of option flags from the identified file that were inserted into the front of the Java command line.

Appended flags / filename

List of option flags from the identified file that were appended to the end of the Java command line.

Current working directory

Current working directory.

Java Home

Path to the location of the JVM’s files on disk - location of the bin directory that contains the java executable.

Class path

Paths to the location of the classes and/or jar files.

Boot class path

Paths to the location of the classes and/or jar files on the boot class path.

Extensions directories

Directories for extensions.

Endorsed directories

Directories for classes implementing newer versions of endorsed standards.

Library path

Native library path.

Boot library path

Boot library path.

ARTA Version

Version of the instrumentation in the JVM that provides data to the ZVRobot server.

Open descriptor count limit

Limit in bytes for open file descriptors for the JVM front end.

Core file size limit

Maximum size in bytes for a core dump file.

Environment Variables Window

The Environment variables window provides a detailed view of all environmental variables set by the shell that launched the JVM.

Since the information in this window does not change over time, set the ZVRobotVars.COUNT variable in the ZVRobot.prop file to 1. This tells ZVRobot to collect only one snapshot. By default, this one snapshot is displayed in work area of the page.

HotSpot Flags Window

The HotSpot flags window displays all -XX flags that the JVM uses, their description, and current values. This screen is for advanced diagnostics and is not intended for beginning users. Azul customer support might instruct users to look up flag values in this window.

Since the information in this window does not change over time, set the ZVRobotVars.COUNT variable in the ZVRobot.prop file to 1. This tells ZVRobot to collect only one snapshot. By default, this one snapshot is displayed in work area of the page.

Element Description

Type

The type of flag. Possible values are:

  • Boolean: the flag requires a boolean value of true (+) or false (-).

  • Integer or Unsigned Integer: the flag requires an integer value.

  • String: the flag requires a string.

Name

The name of the flag.

Value

The value configured for the flag.

Description

The description of the flag.

Statistics Window

The Statistics window displays information about running applications.

Click a hyperlink in the left column to display the collected information for a snapshot. The number of snapshots and the interval between snapshot collection is specified by the ZVRobotVars.COUNT and ZVRobotVars.SECOND variables in the ZVRobot.prop file. The following table describes the Statistics window elements.

Element Description

SystemDictionary Stats

Displays the number of Java classes loaded in the JVM.

Thread Count Stats

Displays the number of running threads.

Settings Window

The Settings window provides controls for enabling GC logging, choosing the level of detail logged, and whether the output is sent to standard out or saved to a new or existing file. ZVRobot captures the state of this window’s settings.

Since the information in this window does not change over time, set the ZVRobotVars.COUNT variable in the ZVRobot.prop file to 1. This tells ZVRobot to collect only one snapshot. By default, this one snapshot is displayed in work area of the page.

The following table describes the Settings window elements.

Element Description

Off

Disables GC logging for this JVM instance. This is the default setting.

Print GC

Enables GC logging with summarized output. Output is equivalent to using the command line option -XX:+PrintGC.

Print GC details

Enables GC logging with detailed output. Output is equivalent to using the command line option -XX:+PrintGCDetails.

Options: File name

Type a file name to send GC log output instead of sending it to standard out. Select the check box and type an existing file name to append the output to the end of an existing file.

Features Window

The Features window provides controls for user access to certain ZVision and ZVRobot features in a running JVM. ZVRobot captures the state of his window’s settings.

Since the information in this window does not change over time, set the ZVRobotVars.COUNT variable in the ZVRobot.prop file to 1. This tells ZVRobot to collect only one snapshot. By default, this one snapshot is displayed in work area of the page.

Element Description

Azul Support

Enables user access to Azul Customer Support Options. Use of this feature is at your risk because some of these diagnostic features can interfere with the proper functioning of the JVM, or cause the system to crash.

Browse Instance

Enables users to browse a class instance, potentially exposing sensitive data within the object.

Browse Class

Enables users to browse the static class data, potentially exposing sensitive data within the class.

Browse Method

Enables users to browse a class method, potentially exposing sensitive sensitive data within the method.

Environment variables

Enables users to view the Environment Variables, potentially exposing sensitive sensitive data.

Stack trace

Enables users to use the Stack Trace window, potentially exposing sensitive sensitive data.

Threads List Window

The Threads List window displays all threads, status of each thread, and links to detailed information about a thread.

Click a hyperlink in the left column to display the collected information for a snapshot. The number of snapshots and the interval between snapshot collection is specified by the ZVRobotVars.COUNT and ZVRobotVars.SECOND variables in the ZVRobot.prop file.

The following table describes the Threads List window elements.

Element Description

Name

Lists the name of the thread as assigned by the application.

State

The most common states for threads are:

  • running: the thread is executing on a processor core.

  • I/O wait: the thread is waiting for socket or file I/O.

  • acquiring monitor: the thread is waiting to acquire a synchronization monitor.

  • acquiring and releasing monitor: the thread a requires and releases a synchronization monitor. This typically happens when the critical section of the monitor is extremely small.

  • sleeping: the thread executed java.lang.Thread.sleep().

Other states, such as idle, semaphore wait, waiting on JVM monitor Threads lock, or Waiting on Monitor SLT lock indicate threads that are internal to the JVM. These states are not normally useful for analysis of application performance. Also, during start up, compiler threads might be running. The time (in seconds) that the thread has spent since entering the state is provided in parenthesis after the waiting state indicators.

Details

Provides links to a stack trace, tick profile, and object profile for the selected thread. These functions are the same as the regular tick and profile features, except that only information on the selected thread displays. The following links appear inline with threads listed in this window:

*Stack: displays a thread execution details window. *Ticks: displays a per-thread profile. *Allocations: displays a thread-level Object profile. This window displays real-time counters for allocated bytes, allocated count, and average object size per object type allocated by the thread since the most recent GC cycle start.

Stack Trace Window

The Stack Trace window lists all threads and displays whether a thread is executing or is blocked. This can help to determine changes to make in the application code. CPU time displays for each thread.

Click a hyperlink in the left column to display the collected information for a snapshot. The number of snapshots and the interval between snapshot collection is specified by the ZVRobotVars.COUNT and ZVRobotVars.SECOND variables in the ZVRobot.prop file.

Deadlocks Window

The Deadlocks window lists detected deadlock cycles. Threads involved for each cycle of locks are listed with the monitor type the thread is trying to acquire and the thread that is the current owner.

Click a hyperlink in the left column to display the collected information for a snapshot. The number of snapshots and the interval between snapshot collection is specified by the ZVRobotVars.COUNT and ZVRobotVars.SECOND variables in the ZVRobot.prop file.

Contention Window

The Contention window provides statistical information for each monitor and sorts monitors by total acquire time. To sort by field, click on the column heading.

Click a hyperlink in the left column to display the collected information for a snapshot. The number of snapshots and the interval between snapshot collection is specified by the ZVRobotVars.COUNT and ZVRobotVars.SECOND variables in the ZVRobot.prop file.

The following types of monitors appear in the Contention window:

  • Java-level monitors: identified by their class name.

  • Internal JVM monitors: identified with the extension _lock. If there are a high number of internal JVM monitors, examine the verbose garbage collection (GC) logs. Observe if there are a large number of GC pauses. Contact Azul customer support if this becomes a problem.

The total acquire time parameter is the time, in milliseconds, for acquires to occur for a given internal or Java-level monitor.

The following table describes the Contention List window elements.

Element Description

Name

The name of the monitor.

Acquire Time (ms)

  • Total: the time, in milliseconds, for acquires to occur for a given internal or Java-level monitor. This is not tracked for lightly contended thin monitors.

  • Max (ms): the maximum time, in milliseconds, to perform an acquire.

Blocking acquires

  • Count: the number of blocking acquires.

Waits

  • Count: the number of wait cycles for the thread.

  • Max : the maximum time, in milliseconds, of wait cycles that have occurred.

  • Total: Cumulative wait time in milliseconds

Tick Profile Window

The Tick Profile window provides information to allow calculation of how processor resources are used for a recorded period of time.

The time interval over which the shown ticks are collected depends on the number and activity of the threads in the Java process. The busier the threads, the faster the data is collected into the fixed-size structures that hold the data.

Note
Method names in the tick profiler represent compiled methods, those no longer being interpreted. All time spent by methods being interpreted is summed as one entry named Interpreter.

Click a hyperlink in the left column to display the collected information for a snapshot. The number of snapshots and the interval between snapshot collection is specified by the ZVRobotVars.COUNT and ZVRobotVars.SECOND variables in the ZVRobot.prop file.

The following table describes the Tick Profile window elements.

Element Description

Percent

The percentage of CPU resources (% of the total number of ticks collected) the method or function used.

Ticks

The number of (ticks) attributed to the function or method.

Source

A description of the function being counted. The following are definitions for specific functions:

  • VM_GC Task: the garbage collector for the JVM.

  • ARTA_Performance_Monitor: the function that collects and displays ZVRobot data.

  • VM_C2 Compiler: the JVM JIT compiler compiling methods indicating that an application is still warming up.

  • generate_monitorenter: the amount of time spent busy-waiting to acquire monitors.

Memory Summary Window

The Memory Summary window provides a summary of total memory usage and Contingency memory usage.

Click a hyperlink in the left column to display the collected information for a snapshot. The number of snapshots and the interval between snapshot collection is specified by the ZVRobotVars.COUNT and ZVRobotVars.SECOND variables in the ZVRobot.prop file.

The following tables describe the Memory Summary window elements.

Memory Summary Window Elements – Java Heap Usage

Element Description

Used

The amount of memory currently used by the JVM.

Capacity

The amount of memory allocated for use by the JVM.

Requested capacity

The maximum amount of memory requested for use by the JVM (-Xmx).

GC cycle count

The number of garbage collection cycles.

Memory Summary Window Elements – Memory Accounts

Element Description

VM internal

Shows allocated, balance, Reserved, and Contingency memory usage for the JVM.

Java heap

Shows allocated, balance, Reserved, and Contingency memory usage for the Java heap.

Java Pause Prevention

Shows allocated, balance, Reserved, and Contingency memory usage for the Java Pause Prevention memory.

GC Summary Window

The GC Summary window provides a cumulative summary of the recent GC cycle history.

Click a hyperlink in the left column to display the collected information for a snapshot. The number of snapshots and the interval between snapshot collection is specified by the ZVRobotVars.COUNT and ZVRobotVars.SECOND variables in the ZVRobot.prop file.

The following table describes the Memory Summary window elements.

Element Description

New generation cycles

Lists the summary values for memory usage during current cycle.

Old generation cycle

Lists the summary values for memory usage during generational cycle.

GC History Window

The GC history window provides a detailed summary of the recent GC cycle history with a row per cycle. Click column titles to sort by relevance.

Click a hyperlink in the left column to display the collected information for a snapshot. The number of snapshots and the interval between snapshot collection is specified by the ZVRobotVars.COUNT and ZVRobotVars.SECOND variables in the ZVRobot.prop file.

The following table describes the GC Memory History window elements.

Element Description

Cycle

Interval (sec): elapsed time between successive GC cycle starts.

Pause ratio: ratio of time application spent in safe point pauses during the cycle to cycle interval time.

Mode

  • p: indicates if allocation from pause memory is enabled

  • g: indicates if allocation from Contingency memory is enabled.

Heap

  • Live (MB): the amount of Java memory used by all application objects currently not known to be dead.

  • Peak (MB): the peak size of the Java heap recorded during the GC cycle.

  • Peak (pgs): the peak size of the Java heap recorded during the GC cycle (in MB by page increments).

  • Max (MB): maximum amount of heap memory guaranteed to the application. This is generally set by –Xmx option.

Reserved

  • Peak (MB): the peak size of the memory Reserved during the GC cycle.

  • Used (MB): the amount of Reserved memory used during the GC cycle.

Pause

These values are used for internal Azul Platform Prime diagnostic purposes only.

Generations

  • Total fragmentation (MB): the total fragmentation in the heap.

  • New used (MB): the amount of memory used by all young objects not known to be dead during the GC cycle.

  • Old used (MB): the amount of memory used by all old objects not known to be dead during the GC cycle.

  • Perm used (MB): the amount of memory used by all permanent objects not known to be dead during the GC cycle.

  • Live (MB): the live memory in the generation(s) being collected.

  • Fragmentation (MB): the fragmentation in the generation(s) being collected.

Garbage

  • Found (MB): the garbage found in the generation(s) being collected.

  • Freed (MB): the garbage freed in the generation(s) being collected.

  • Sideband limited (MB): used for internal Azul Platform Prime diagnostics purposes only.

Pages

These values are used for internal Azul Platform Prime diagnostics purposes only.

Pauses

  • Pause 1 start (sec): the start time of the pause 1 safepoint.

  • Pause 1 duration (ms): the duration time of the pause 1 safepoint.

  • Pause 2 start (sec): the start time of the pause 2 safepoint.

  • Pause 2 duration (ms): the duration of the pause 2 safepoint

  • Pause 3 duration (ms): the total duration of all pause 3 safepoints for this GC cycle.

Pauses (garbage collector only)

  • Pause 3 start (sec): the start time of the pause 3 safepoint.

  • Pause 3 count: the number of pause 3 safepoints.

  • Pause 3 max: the maximum duration of any one pause 3 safepoint.

Intercycle

  • Duration (sec.): the elapsed time from the end of the last GC cycle to the start of this GC cycle.

  • Allocation rate (MB/s): the object allocation rate in the generation being collected in the period between the last GC cycle to the start of this GC cycle.

Intercycle (garbage collector only)

  • Perm allocation rate (MB/s): the object allocation rate in the permanent generation during this GC cycle.

Intracycle

  • Duration (sec.): the GC cycle elapsed time; the duration of time from the beginning to the end of this GC cycle.

  • Allocation rate (MB/s): the object allocation rate in the generation being collected during this GC cycle.

Intracycle (garbage collector only)

  • Perm allocation rate (MB/s): the object allocation rate in the permanent generation during this GC cycle.

App threads

  • Total threads: the total count of Java threads in the JVM.

  • Threads delayed: the number of threads blocked trying to allocate memory during the GC cycle. When the number of delayed threads is greater than 0, application performance is affected due to lack of available memory.

  • Average thread delay (sec): the average delay for threads blocked trying to allocate during the GC cycle.

  • Max thread delay (sec): the maximum delay for threads blocked trying to allocate.

Compilers – Task Window

The Compilers Task window of ZVRobot displays the status of Server and Client compiler tasks. Click a hyperlink in the left column to display the collected information for a snapshot. The number of snapshots and the interval between snapshot collection is specified by the ZVRobotVars.COUNT and ZVRobotVars.SECOND variables in the ZVRobot.prop file.

The following table describes the Compilers Tab window elements.

Element Description

Compiling

Status of threads compiling.

Waiting

Status of threads waiting compiling.

Class List Window

The Class List window displays a list of application and Java class library classes that are loaded in the JVM.

Click a hyperlink in the left column to display the collected information for a snapshot. The number of snapshots and the interval between snapshot collection is specified by the ZVRobotVars.COUNT and ZVRobotVars.SECOND variables in the ZVRobot.prop file.