Back to Zing Documentation Home

Using Zing Vision

Zing Vision (ZVision) and Zing Vision Robot (ZVRobot) provide ZVM process profiling and diagnostics.

The following sections describes configuring and using the Zing Vision (ZVision) :

Note

The use of ZVision should be taken under careful consideration since access to sensitive performance data should be restricted following company policy and security recommendations.

Zing Vision Overview

ZVision provides programmers and deployment engineers with information about both a running application and the underlying ZVM. It also helps users tune command line options and code to optimize performance using the following capabilities:

  • Complete internal and environment settings inventory
  • Statistical, flat profiling of processor core usage from the thread level to run-time tasks down to the method level

Take two data samples within a period of time (for example, in a 20 sec. interval) to calculate performance counter increments.

ZVision requires:

  • ZVM host IP address and ZVM host ARTA port

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

  • ZVision host IP address and ZVision browser listening port

    ZVision is automatically installed on the same machine as ZVM when ZVM is installed. You can connect a ZVision installed on one machine to a ZVM on another machine. The ZVision listening port must be configured.

ZVision is accessible from supported Web browsers with access to the application host running the ZVM instance. 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

Statistical Tick Profiler

The statistical tick profiler displays how processor core time is spent between various software execution units (for example, threads, methods, and run-time tasks). The Zing tick profiler differs from other profilers as follows:

  • It is a statistical, flat (not tree-based) profiler. It does not capture every processor core cycle. Instead, for every n processor core cycles, it records where in the ZVM the processor core was running (this is the program counter). It then uses this data to build a flat, non-nested profile.
  • The captured data represents a specific time period.
  • It profiles both within and outside the Java code. Most Java profilers use byte code instrumentation for Java code.
  • It does not profile when threads are blocked on locks. To retrieve information on monitors, go to the Monitors window.

The statistical tick profiler is displayed in the Tick profile window accessed from the CPU tab (see Tick Profile Window for more details).

Enable or Disable Tick Profiler

The Tick Profiler is enabled and disabled by using the Java command line option, UseTickProfiler. The default value 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)

Sorting Tables

Variable size tables can be sorted by column. Click the column head to sort in ascending order. Click the column head again to resort in descending order. Fixed tables (for example, the GC Summary Window) cannot be sorted.

Running ZVision

Before you can use ZVision to view ZVM data you need to familiarize yourself with the specific ZVM option, configure the ZVM host port and ZVision server.

ZVM Command Line Options

The ZVM command line options listed in the table below are used to configure ZVision to provide profiling and diagnostics information when running a Java application on a ZVM application host.

  ZVM Configuration Command Line Options
Java Command Option Description

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

Enables ZVision and allows the ZVision server to listen on the specified port of the host where the ZVM is running. Valid options include:

  • off – disables ZVision (default).
  • <port> – port number for ZVision to use on the host. The value should be greater than or equal to 1025 and less than or equal to 65535.
  • any – ZVision uses any free port. This setting is useful when starting multiple instances of ZVision for multiple VMs.

Supply a port number or set this option to any to enable ZVision.

The ARTA (Azul Run Time Analysis) port provides internal API communication between ZVision and ZVM.

-XX:PrintGCHistory=<number of historical PGC cycle reports>

Set the number of historical PGC cycle reports to save for display in ZVision (default =50).

-XX:GCWarningHistory=<number of historical PGC warnings>

Set the number of historical PGC warnings to save for display in ZVision (default =50).

Configuring the ZVM Host Port

To configure ZVision on a ZVM application host:

  1. Log on to the ZVM application host where the Java workload will be run.
  2. Add the following Java command line option to your Java application launch command:

-XX:ARTAPort=<port>

where:

<port> is the port ZVision server will use to connect on the ZVM.

The Azul Real Time Analysis port (ARTA port) provides internal communication between ZVision and the ZVM.

See Zing Virtual Machine Options for more information on ZVM command line options.

Configuring the ZVision Server

The ZVision server is included with the ZVM software. The ZVision server does not need to be run on the same host where the application is running, it only requires a network connection to the host where the application is running.

To configure the ZVision server:

  1. Log in to a host where the ZVision will run.
  2. Set the JAVA_HOME variable (or equivalent) so that the Java call points to the parent directory of the ZVM software. For example:

JAVA_HOME=<ZVM install location>/<ZVM top-level directory>

  1. Type the following Java command line:

$JAVA_HOME/bin/zvision -p <port>

where:

<port> is port number that is used by a browser to connect to ZVision (default: 8088)

When the ZVision server starts successfully, the port number that is used by the browser to connect to ZVision is displayed on the command line. For example:

ZVision server listening on port 8088

See Accessing ZVision for details about accessing ZVision from a browser session.

Note

See Advanced Configuration Options for more information about ZVision server command line options.

Advanced Configuration Options

The ZVision server can be invoked from the command line as follows:

zvision [options]

The following command line options are supported:

Command Line Option Description

-h or --help

Display a list of supported command line options

-p PORT, --port=PORT

Specify the port number port number that browsers listen to the ZVision server

-i INTERFACE, --interface=INTERFACE

Specify the network interface that the ZVM accepts HTTP connections.

-t ARTA_TIMEOUT, -arta_timeout=ARTA_ TIMEOUT

Specify the timeout interval (in seconds) when communicating with the ZVM.

-1 DEBUG_LEVEL--logging=DEBUG_LEVEL

Specify the debug logging level: debug, info, warning, error, or critical

--document_root=DOCUMENT_ ROOT

Specify the path to static HTML files used by the ZVision server.

Accessing ZVision

To access ZVision:

  1. Start a browser session and enter the URL of the ZVision server:

http://<ZVisionserver>:<port>

where:

  • <ZVision_server_IP_address> is the host name or IP address of the ZVision server

  • <port> is the ZVision server port number that accepts connections from a Web browser

For example: http://host123:8088

  1. On successful connection to the ZVision server, the ZVision login window appears.

Figure. ZVision Login Window

ZVision Login Window

Enter the following information:

  • ARTA host – ZVM server host name or IP address
  • ARTA port – ZVM application host port specified with the -XX:ARTAPort command line

A ZVision session window is displayed.

ZVision Interface

The ZVision interface consists of a series of tabbed pages and corresponding windows. Select a tab to access additional windows for a given component.

Figure. Configuration Tab of the ZVision Window

Configuration Tab of the ZVision Window

The following table describes the organization of ZVision tabs. The rest of the section provides more information about the windows that comprise each ZVision tab.

  ZVision Tabs
Tab Window Summary

Overview Tab

Configuration Window

Displays information for all process settings for the ZVM.

Environment Variables Window

Displays information for all environmental variables set by the shell that launched the ZVM front end.

HotSpot Flags Window

Displays information for all of the HotSpot flags that the ZVM uses.

Statistics Window

Displays information about running applications.

Settings Window

Displays configuration to enable GC logging, control level of detail logged, and destination of the output.

Groups

This feature is not supported at this time.

Login

This feature is not supported at this time.

Features Window

Enables or disables user access to restricted ZVision features.

Threads Tab

Threads List Window

Displays all threads with links to detailed information for each thread.

Stack Trace Window

Lists all threads with information whether each one is executing or blocked.

Deadlocks Window

Lists detected deadlock cycles.

Contention Window

Displays statistics for each monitor (sorted by total time held).

Contention Details Window

Provides additional information about the selected monitor in contention.

CPU Tab

Tick Profile Window

Displays information that shows how percentage of processor core time used for an interval of recorded time.

Meta Ticks Window

Lists the time it takes to complete logical tasks.

Event Tracker

This feature is not supported at this time.

Memory Tab

Memory Summary Window

Displays a summary of total memory usage and Contingency memory usage.

GC Summary Window

Displays a cumulative summary of recent GC cycle history.

GC History Window

Displays a detailed summary of recent GC cycle history (one row per collection).

Browse Object Window

Displays information about object, instance, method, or class.

Allocated Objects Window

Displays information on allocated objects by object type.

Live Objects Window

Displays information on class instances.

Type Velocity Window

Displays a current list of classes in the old generation heap and their rate of memory growth.

Compilers Tab

Tasks

Displays the status of Server and Client compiler tasks.

Applications Tab

Class List

Displays the application classes and Java class libraries loaded in the ZVM.

Overview Tab

The Overview tab of ZVision contains the following windows:

Configuration Window

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

Figure. Configuration Tab of the ZVision Window

Configuration Tab of the ZVision Window

The following table describes the Configuration window elements.

  Configuration Window Elements
Element Description

Version

The ZVM version.

Command line

The list of classes and command line options used to launch a Java application.

Java Home

The Java Home path.

Class path

The path to the class.

Boot class path

The path to the boot class.

Extensions directories

The directories for extensions.

Endorsed directories

The directories for classes implementing newer versions of endorsed standards.

Library path

The native library path.

Boot library path

The boot library path.

ARTA Version

The version of the instrumentation in the ZVM that provides data to the ZVision server.

Open file descriptors

The limit in bytes for open file descriptors for the ZVM front end.

Core file size limit

The 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 ZVM. The Environment Variables window is displayed only if it is enabled in the Features window (see Features Window for more information).

Figure. Environment Variables Window

ZVision: Environment Variables Window of the Overview tab

The following table describes the Environment Variables window elements.

  Environment Variables Window Elements
Element Description

Name

Name of the environment variable.

Value

Current setting or value for the environment variable.

HotSpot Flags Window

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

Figure. HotSpot Flags Window

ZVision: the HotSpot Flags window of the Overview tab

The following table describes the HotSpot Flags window elements.

  HotSpot Flags Window Elements
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.

Figure. Statistics Window

ZVision: the Statistics window of the Overview tab

The following table describes the Statistics window elements

Element Description

SystemDictionary Stats

Displays the number of Java classes loaded in the ZVM.

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.

Figure. Settings Window

ZVision: the Settings window of the Overview tab

The following table describes the Settings window elements.

  Settings Window Elements
Element Description

Off

Disables GC logging for this ZVM 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.

Groups Window

This feature is not supported.

Login Window

This feature is not supported.

Features Window

The Features window is displayed to enable user access to certain ZVision features for the currently running ZVM.

Warning

Enabling user access to any of these features may interfere with the ZVM, cause system delays, or expose sensitive information.

 

Figure. Features Window

ZVision: the Features window of the Overview tab

The following table describes the Features window elements.

Element Description

Azul Support

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

Browse Instance

Enables users to browse a class instance. Turning this feature on could expose sensitive data within the object.

Browse Class

Enables users to browse the static class data. Turning this feature on could expose sensitive data within the object.

Browse Method

Enables users to browse a class method. Turning this feature on could expose sensitive data within the object.

Environment variables

Enables users to view the Environment Variables. Turning this feature on could expose sensitive data.

Stack trace

Enables users to use the Stack Trace window. Turning this feature on could expose sensitive data.

MetaTicks

Enables users to view metaticks. Turning this feature on could interfere with the proper functioning of the VM and cause the system to crash. This tab should ONLY be enabled if advised by Azul Support.

Polling Opportunities

Enables users to view the Polling Opportunities entries. Turning this feature on could interfere with the proper functioning of the VM and cause the system to crash. This tab should ONLY be enabled if advised by Azul Support.

Weblogic Muxer

Enables users to use the Web Logic Muxer Application. Turning this feature on could interfere with the proper functioning of the VM and cause the system to crash. This tab should ONLY be enabled if advised by Azul Support.

Threads Tab

The Threads tab contains the following windows:

Threads List Window

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

  • Refresh this window to view thread progress.
  • Click the Name and State column titles to sort the table.
  • Click the Details link item display the status of a thread and where it is blocked. Refer to Stack Trace Window.
  • Set values in the Name, State, Group, and/or Per page fields to filter the displayed list

Figure. List Window

ZVision: the List window of the Threads tab

The following table describes the Threads List window elements.

 
Threads List Window Elements
Elements 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.
  • waiting on monitor – the thread is blocked in java.lang.Object.wait() awaiting notification.
  • low memory detection –
  • 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 ZVM monitor Threads_lock, or Waiting on Monitor SLT lock indicate threads that are internal to the ZVM. These states are not normally useful for analysis of application performance. Also, during start up, compiler threads may 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. Displays the page Threads > Stack Trace.
  • Ticks – displays a per-thread profile. Displays the page CPU > Tick Profiler.
  • System calls, RPC out, RPC in, FDC, and Transport are not supported at this time.
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.

To perform a search by thread name, type a string in the Name field to display all thread names that include that text string (case sensitive).

Click the thread links in the Stack Trace window to display a thread execution details window. Use the State drop-down menu to only display threads in a certain state (for example, running, I/O wait, acquiring monitor, and so on). Use the Group drop-down menu to select whether to list system, non-system, or all group types. Use the Per Page drop-down menu to determine the number of items to display on this page.

Toggle between low or high display of detailed information.

Refresh this screen to view the progress of the thread. Relevant information displays at the top of the window:

  • Address
  • Priority
  • Object blocked
  • Object wait
  • CPU wait
  • I/O wait

The Stack Trace window is displayed only if it is enabled in the Features window (see Features Window for more information).

Figure. Stack Trace Window

ZVision: the Stack Trace window of the Threads tab

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 the thread links to view additional information.

Figure. Deadlocks Window

ZVision: the Deadlocks window of the Threads tab

Contention Window

The Contention window provides statistical information for each monitor and sorts monitors by total acquire time. 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.

Figure. Contention Window

ZVision: the Contention window of the Threads tab

The following table describes the Contention window elements. Click column titles to sort by relevance.

  Contention Window Elements
Elements 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 (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 on the thread.
  • Max (ms) – the maximum time, in milliseconds, of wait cycles that are allowed.
  • Total (ms) – Cumulative wait cycle in milliseconds
Contention Details Window

The Contention Detail window provides additional information about the selected monitor in contention. Detail information is displayed through the Azul Support tab.

Note

If Azul Support is enabled, links to related Monitor details are displayed. Only enable and use the Azul Support tab as directed by Azul Support team members.

Figure. Contention Details Window

ZVisions: the Contention Details window of the Threads tab

CPU Tab

The CPU tab provides information about how much CPU time is being used by threads. This is measured by recording the length of time it takes a thread to complete a tick, how often a thread accesses sensitive areas of the application code, and the length of time a thread takes to achieve a safepoint.

The CPU tab contains the following windows:

Tick Profile Window

The Tick Profile window provides information to allow calculation of how processor resources are used for an interval of recorded time. The recorded time interval depends on the number of threads and how busy the threads are. The busier threads are, the greater the number of ticks generated. See Statistical Tick Profiler for more information the statistical tick profiler.

Note

Method names in the tick profiler are compiled methods and are no longer being interpreted. All time spent by methods being interpreted is summed as one entry named “Interpreter.”

Check the Tick Profile window for functions such as VM_C2 Compiler or Interpreter after launching an application. If these functions are high on the list, then the application is still starting up (a warning message may also appear in the Compiler tab). To determine if the application is warmed up, wait a few seconds, click Reset Tick Profile, then refresh the Web browser until these two threads are not high in the list.

Figure. Timer Tick Profiler Window

Timer Tick Profiler window of the CPU tab

The following table describes the Tick Profile window elements.

  Tick Profile Window Elements
Element Description

Pause/Resume the Tick Collection

Click Pause The Tick Collection to stop refreshing the list of ticks. This is useful when you need to locate a specific item in a rapidly changing list. Click Resume The Tick Collection and refresh the screen to continue updating the list of ticks.

Reset Tick Profile

Clears the existing list of ticks and restarts tick collection.

Cutoff

Filters the list of ticks to list only those values that are greater than or equal to the set cutoff value. Enter value. Click Submit.

Below Cutoff

At the bottom of the list of ticks, it lists the percentage and number of ticks that are not included in the displayed list as defined by the Cutoff percent value and Threads value.

Threads

Display the ticks for only the threads listed in this field. Enter value. Click Submit.

None, JVM, All

The three radio buttons filter the tick data by a tag assigned to it. Whenever a thread is running, it has a current tag assigned to it. That value can change at any time, as the thread does different things. For instance, if you have a thread that is a garbage collection thread, it's tag might be "garbage collection" most of the time, but when that thread was running some specific subtask of GC, it might say GC marking phase. This feature allows collates and displays the data from the aspect of the tag value instead of the method name.

The options are:

  • None – don't filter the list by tags.
  • JVM -- group all the JVM compiler ticks into one entry, so that everything is lumped together. Useful if you are trying to get a sense of what overhead the compiler is having.
  • All - only display ticks by tag type for all threads. Instead of showing ticks entries by their method name, group and display them by their tag type.

To apply tag filter:

Click a radio button. Click Submit.

Percent

The percentage of CPU resources (% of the total number of ticks collected during the collection period) the function used during the time interval.

Ticks

The number of program counters (“ticks”) collected in the time interval. This includes:

  • Timer ticks – collect for each tick, the thread ID, CPU, stack trace and last eight calling functions when the tick occurs. The time reported, in milliseconds, is thread time, not clock time.
  • Time to safe point ticks – collect the time required to complete a save point process.

Source

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

  • VM_GC Task – the garbage collector for the ZVM.
  • ARTA_Performance_Monitor – the function that collects and displays ZVision data.
  • VM_C2 Compiler – the ZVM JIT compiler compiling methods indicating that an application is still warming up .
  • generate_monitor enter – the amount of time spent busy-waiting to acquire monitors.

Event Profiling Tick Buffer Statistics

Statistical information about the total list of ticks. This includes:

  • Ticks within a Buffer – number of ticks a standard tick buffer can hold. There is a fixed maximum of 2K.
  • Available Buffers – number of buffers the user has allocated, as determined by the -XX:EventTickBufferDataBufferMargin=N value, plus the high water mark number of active threads. For example, if you specify 100, and the application has 400 threads simultaneously active, then there are 500 available buffers. This total value is dynamic, but only grows. If suddenly the application drops 300 threads, there continues to be 500 buffers.
  • Theoretical Maximum Ticks (Available Buffer * Ticks/Buffer) – per the listed formula, for example using Ticks within a Buffer maximum (2000) X Available Buffers (500) = 1,000,000.
  • Count of Ticks processed – not all buffers are completely filled at any moment in time. The tick buffers are collecting ticks. Some have not been used yet. This value is the count of all ticks that are in buffers, which is some value less than the theoretical maximum.
  • Profiler Ticks applicable (matched filter criteria) – number of ticks that match the search criteria
  • Other Ticks not applicable (Failed filter criteria) – number of ticks that do not match the search criteria. Profiler Ticks and Other Ticks equal the total number of ticks processed.
Meta Ticks Window

Meta Ticks measure how long it takes to perform a function. This is not a measure of each thread. Meta Ticks are like timer ticks in nature. They are a discreet packet of information about the state of a thread, but unlike the Profile Ticks, which are created based on some periodic timer, Meta Ticks are created as the thread enters certain specific code paths.

Figure. Meta Ticks Window

Meta Ticks windows of the CPU tab


The following table describes the Meta Ticks window elements.

  Meta Ticks Window Elements
Element Description

Pause/Resume the Tick Collection

Click Pause The Tick Collection to stop refreshing the list of ticks. This is useful when you need to locate a specific item in a rapidly changing list. Click Resume The Tick Collection and refresh the screen to continue updating the list of ticks.

Reset Tick Profile

Clears the existing list of ticks and restarts tick collection.

Search Criteria:

Single Value Entries

  • Entries Displayed – number of entries displayed on a given page.
  • Tick Start – a search field which determines the earliest tick that is included in the display, based on the elapsed tick counter.
  • Tick End – a search field which determines the latest tick that is
  • included in the display, based on the elapsed tick counter.

Search Criteria:

Comma Separated Lists

These items are all search criteria for metaticks. The five fields in this row can all use comma separated lists as a search criteria. That is, you can search for more than one term simultaneously, by listing those terms with commas separating them. For example, CPU field could contain "2,5,9", which would list all metaticks that came from CPU 2, 5 or 9.

  • MetaTick # – value that can be used for searches. The values are preassigned by Azul.
  • User Info # – value assigned dynamically by the application that can be searched on.
  • Tag # – The current Virtual Machine Process Tag of the thread when the metatick occurred. This is a pre-defined value we assign to a thread that can be changed dynamically, to indicate what kind of work the thread is doing. The values are preassigned by Azul.
  • CPU # – the CPU that the thread was executing on when the metatick occurred.
  • Thread # – thread ID for Azul internal use.

Data Table

List of actual metatick data. See below listed field descriptions.

  • Line item – last 100 meta ticks recorded.
  • Tick Counter – elapsed ticks since startup.
  • Thread ID – thread ID for Azul internal use.
  • CPU – CPU that the thread was executing on when the metatick occurred.
  • MetaTick Type – value for Azul internal use. Value indicates the tag value at the time the tick occurred.
  • MetaTick Type # – string translation of the stored bit value to the metatick type.
  • Tag Name – string human readable translation of the tag number.
  • Tag # – the VM Tag currently assigned when the metatick occurred
  • Stack Frame Address – address of the stack frame at the time the tick occurred.

Event Profiling Tick Buffer Statistics

The following are diagnostics related to capturing tick statistics.

  • Ticks within a Buffer – number of ticks a standard tick buffer can hold. There is a fixed maximum of 2K.
  • Available Buffers – number of buffers the user has allocated, as determined by the -XX:EventTickBufferDataBufferMargin=N value, plus the high water mark number of active threads. For example, if you specify 100, and the application has 400 threads simultaneously active, then there are 500 available buffers. This total value is dynamic, but only grows. If suddenly the application drops 300 threads, there continues to be 500 buffers.
  • Theoretical Maximum Ticks (Available Buffer * Ticks/Buf) – per the listed formula, for example using Ticks within a Buffer maximum (2000) X Available Buffers (500) = 1,000,000.
  • Count of Ticks processed – not all buffers are completely filled at any moment in time. The tick buffers are collecting ticks. Some have not been used yet. This value is the count of all ticks that are in buffers, which is some value less than the theoretical maximum.
  • Profiler Ticks applicable (matched filter criteria) – number of ticks that match the search criteria
  • Other Ticks not applicable (Failed filter criteria) – number of ticks that do not match the search criteria. Profiler Ticks and Other Ticks equal the total number of ticks processed.
Event Tracker

This feature is not supported.

Memory Tab

The Memory tab contains the following windows:

Memory Summary Window

The Memory Summary window provides a summary of total memory usage and Contingency memory usage. See Contingency Memory and Generational Pauseless Garbage Collection and ZVM, Memory, and Garbage Collection for more information about Contingency memory.

Figure. Summary Window

Summary window of the Memory tab

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

Capacity

The amount of memory allocated for use by the ZVM.

Requested capacity

The maximum amount of memory requested for use by the ZVM (-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 ZVM

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. See ZVM's Garbage Collector for more information about the garbage collector.

Figure. GC Summary Window

GC Summary window of the Memory tab

The following table lists the GC Summary window elements. The screen lists the garbage collection information for both New generation and Old generation cycles in two parallel tables.

  GC Summary Window Elements
Element Description

Header

  • Category – element being measured
  • Statistic – aspect of the element being measured
  • Mean – statistical calculation of collected values
  • Stddev – standard deviation calculated for collected values
  • Min – minimum value in collected sample
  • Max – maximum value in collected sample

Cycle

  • Interval (sec) – elapsed time between successive GC cycle starts.
  • Pause ratio – ratio of time application spent in safepoint pauses during the cycle to cycle interval time

Reserved

  • Peak used (MB) – the peak size of the Java heap recorded during the GC cycle

Pause

These values are used for internal Zing diagnostic purposes only.

Generations

  • 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.
  • Collected (MB) – the garbage freed in the generation(s) being collected.
  • Sideband limited (MB) – used for internal Zing diagnostics purposes only.

Pages

These values are used for internal Zing diagnostic purposes only.

Pauses

  • Pause 1 duration (ms) – the duration time of the pause 1 safepoint.
  • Pause 2 duration (ms) – the duration of the pause 2 safepoint
  • Pause 3 duration (ms) – the duration of the pause 3 safepoint
  • Pause 4 duration (ms) – the total duration of all pause 4 safepoints for this GC cycle.

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.
  • 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.
  • 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 ZVM.
  • 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.
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.

Figure. GC History Window

GC History window of the Memory tab

The following table lists the GC History window elements.

  GC History Window Elements
Element Description

Cycle Type

Indicates GC cycle, as follows:

  • Old – old generation cycle
  • New – new generation cycle
  • NTO – new generation cycle that immediately precedes an Old Gen cycle

Cycle #

For each New or Old Gen cycle, the number of that collection in the sequence of all collections of that type (New or Old Gen).

Mode

  • p – indicates if allocation from pause memory is enabled
  • g – indicates if allocation from Contingency memory is enabled.

Memory Heap

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

Memory Reserved

  • Peak – the peak size of the Java heap recorded during the GC cycle.
  • Used – the amount of memory used by all objects not known to be dead during the GC cycle.

Memory Pause

These values are used for internal Zing diagnostic purposes only.

Memory Generations

  • New – the amount of memory used by all young objects not known to be dead during the GC cycle.
  • Old – the amount of memory used by all old objects not known to be dead during the GC cycle.
  • Perm – the amount of memory used by all permanent objects not known to be dead during the GC cycle.
  • Live – the live memory in the generation(s) being collected.
  • Frag – the fragmentation in the generation(s) being collected.

Memory Garbage

  • Found – the garbage found in the generation(s) being collected.
  • Freed – the garbage freed in the generation(s) being collected.
  • Sideband limited – used for internal Zing diagnostics purposes only.

Memory Pages

These values are used for internal Zing diagnostic purposes only.

Intercycle

  • Dur (sec.) – the elapsed time from the end of the last GC cycle to the start of this GC cycle.
  • Alloc 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.
  • Perm alloc rate (MB/s) – the object allocation rate in the permanent generation during this GC cycle.

Intracycle

  • Dur (sec.) – the GC cycle elapsed time; the duration of time from the beginning to the end of this GC cycle.
  • Alloc rate (MB/s) – the object allocation rate in the generation being collected during this GC cycle.
  • Perm alloc rate (MB/s) – the object allocation rate in the permanent generation during this GC cycle.

App threads #

  • # – the total count of Java threads in the ZVM.

App threads Delay

  • # – 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.
  • Ave (sec) – the average delay for threads blocked trying to allocate during the GC cycle.
  • Max (sec) – the maximum delay for threads blocked trying to allocate.
Browse Object Window

Do not select this page directly, instead select a highlighted object, instance, method or class.

Figure. Browse Object Window

Browse Object window of the Memory tab

The following table describes the Browse Object tab window elements.

  Browse Object Tab Window Elements
Element Description

Class Property and Value

If applicable, list of class properties associated with the selected object. Includes values for the listed properties.

Static Fields

If applicable, list of static information associated with the selected object. This includes descriptive information:

  • Access
  • Name
  • Type
  • Value

Methods

If applicable, list of methods associated with the selected object.

Transitive Interfaces

If applicable, list of transitive interfaces associated with the selected object.

Allocated Objects Window

Data collected for allocated objects only when the -XX:ProfileAllocatedObjects option is included in the JVM command.

This feature is not supported.

Live Objects Window

The Live Objects window displays a current list of classes in the old generation heap that are being kept alive. Use this information to identify possible memory leaks in your Java application.

Each listed row [with a plus (+)] is a referent class. Expanded rows show a list of referrer classes to the referent class. A class is listed as a referrer, when all the following conditions are met:

  • An object of that class directly points to an object of the referent class.
  • The referent object was seen by the GC through the referrer object.

Only the first referrer seen by the GC is counted. This means that there could be other referrer objects that point to the referent objects, but they are not included.

To display Live Object data, include the -XX:+ProfileLiveObjects option in the JVM command. To view current data, refresh the screen. If a GC has not occurred yet, a message to refresh is displayed.

Figure. Old Generation Live Objects Profile Window

Old Generation Live Objects Profile window of the Memory tab

The following table describes the Live Object tab window elements. Note, all the descriptions are about the old generation heap.

  Live Object Tab Window Elements
Element Description

Total

Total number of old generation live objects.

Class Name

Name of classes whose objects reside in old generation memory. Click the plus (+) to see referring classes.

Count

The number of objects of this class that are alive in the old generation heap.

Size (bytes)

The total amount of memory used by objects of this class.

Avg Size (bytes)

The average amount of memory used by objects of this class.

Percentage of Live Set

The percentage of the live set memory consumed by object of this class.

For referrer rows this is a percentage of referrer count.

Type Velocity Window

The Type Velocity window displays a current list of classes in the old generation heap and their rate of memory growth. Where velocity for a class is the rate of heap growth in bytes over a selected time interval. Use this information to identify possible memory leaks in your Java application.

To gather Type Velocity data, include the -XX:+ProfileLiveObjects option in the JVM command and allocate extra memory. To view current data, refresh the screen.

All time listings are in format: [dd] hr:min:sec. Number of days are listed only if it is non-zero. Only the top 1000 classes, sorted by Growth Rate, are shown.

Figure. Old Generation Type Velocity Window

Old Generation Type Velocity window of the Memory tab

The following table describes the Type Velocity tab window elements.

  Type Velocity Tab Window Elements
Element Description

Interval

Options in increments ranging: 1 – 45 mins, 1-18 hrs, 1-7 days

Requested time interval

Selected time interval by the user. See options in Interval.

Best available match interval

Time interval starting from the last GC cycle that most closely matches the selected interval.

For example, if GC occurred at 10 minutes, 15 minutes, 20 minutes, and 45 minutes from the start of the VM, and the selected interval is 10, then the data from the GC at 20 minutes (interval-start) and 45 minutes (interval-end) are used for calculating the type velocity.

Interval-start

Interval-end

The starting time and ending time of the best available match interval. Time is not clock time. It is time from start of VM.

VM uptime

Amount of time passed since the start of the VM.

Class Name

Name of classes whose objects reside in old generation memory.

Latest Count

The number of objects of this class that are alive at interval-end time.

Latest Size (bytes)

The total amount of memory used by objects of this class that are alive at interval-end time.

Prior Count

The number of objects of this class that are alive at interval-start time.

Prior Size (bytes)

The total amount of memory used by objects of this class that are alive at interval-start time.

Delta Count

The difference between the number of objects of this class that are alive between interval-start and interval-end time.

Delta Size (bytes)

The difference between the memory used by objects of this class between interval-start and interval-end time.

Growth Rate (bytes/min)

The rate of heap growth for a class over Best available match interval.

Growth Rate = Delta Size / Best available match interval.

Compilers Tab

The Compiler tab of ZVision displays the status of Server and Client compiler tasks.

Figure. Tasks Window

Tasks window of the Compiler tab

The following table describes the Compiler tab window elements.

  Compiler Tab Window Elements
Element Description

Compiling

Status of threads being compiled.

Waiting

Status of threads waiting to be compiled

Applications Tab

The Application tab displays a list of application classes and Java class libraries that are loaded in the ZVM. If the Browse Class feature is enabled for a user in the Features tab, the hyperlink for a specific class can be selected to browse the static class data in the Browse Object window (see Features Window for more information about enabling the Browse Class feature).

Figure. Class List Window

Class List window of the Applications tab


© Azul Systems, Inc. 2020 All rights reserved.

Privacy Policy | Legal | Terms of Use