Java Mission Control

These days we have seen many Monitoring tool which provide detail visual information about our site or Virtual Machine running in background and their performance rate etc.

Java Mission Control or JMC is new monitoring tool of Sun JDK which got release from JDK 7.

This visual idea was already developed by Jrockit which is also called JRockit Mission Control.

The main idea of this JMC ( Java Mission Control ) is to gather necessary data with lowest possible impact on running process.  When we say lowest possible impact then it is safe to run in Production environment. 




We will find this utility under JAVA_HOME /bin/


jmc.ini will play key role to load and control entire JMC.


-startup
../lib/missioncontrol/plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
../lib/missioncontrol/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20120913-144807
-vm
../jre/bin/
-vmargs
-XX:+UseG1GC
-XX:+UnlockCommercialFeatures
-XX:+FlightRecorder
-XX:FlightRecorderOptions=defaultrecording=true
-Djava.net.preferIPv4Stack=true


Let see what features are available using JMC


1. JVM Browser
The JVM Browser is a view that shows the available Java Virtual Machines (JVMs), which you can monitor, manage, and troubleshoot using Java Mission Control (JMC). The JVM Browser automatically starts when you start the JMC client. To connect a plug-in to a JVM, right click the JVM in the browser and choose the tool you want to use from the context menu.

The JVMs in the browser are either automatically discovered or manually configured. Manually configuring custom JVMs is useful for detailed control over the JMXServiceURL or for setting the credentials.

    There are two types of automatically discovered JVMs:
   
        Locally Discovered JVMs running on the same machine as Java Mission Control

        JVMs Discovered Over the Java Discovery Protocol (JDP) on the network



2. MBean Browser

Java Mission Control uses Managed Beans (MBeans) to provide a unified and consistent interface for monitoring and managing Java application performance. MBeans are managed objects that follow the design patterns that conform to the JMX specification. An MBean can represent a device, an application, or any resource that needs to be managed. The management interface of an MBean comprises a set of attributes, operations, and notifications.

The MBean Browser provides access to all registered MBeans. MBeans are registered in the Management Server, which can be accessed by clients compliant with the Java Management Extensions (JMX), for example, the JMX Console in Java Mission Control.

The MBean Browser tab is divided into the following panels:

MBean Tree: A list of all registered MBeans (listed by domain). You can filter the list by MBean name using the Filter field. To toggle automatic updates, use the button in the top right corner of the MBean Tree panel.

MBean Features: A panel with the following subtabs:

Attributes: Lists the attributes for the selected MBean.

Operations: Lists the operations you can invoke from the selected MBean.

Notifications: Lists the notifications prompted by the MBean during runtime.

Metadata: Contains information that describes the MBean.







3. JFR ( Java Flight Recording)


Java Flight Recorder (JFR) is a tool for collecting diagnostic and profiling data about a running Java application. It is integrated into the Java Virtual Machine (JVM) and causes almost no performance overhead, so it can be used even in heavily loaded production environments. When default settings are used, both internal testing and customer feedback indicate that performance impact is less than one percent. For some applications, it can be significantly lower. However, for short-running applications (which are not the kind of applications running in production environments), relative startup and warmup times can be larger, which might impact the performance by more than one percent. JFR collects data about the JVM as well as the Java application running on it.

Compared to other similar tools, JFR has the following benefits:

Provides better data: A coherent data model used by JFR makes it easier to cross reference and filter events.

Allows for third-party event providers: A set of APIs allow JFR to monitor third-party applications, including WebLogic Server and other Oracle products.

Reduces total cost of ownership: JFR enables you to spend less time diagnosing and troubleshooting problems, reduces operating costs and business interrupts, provides faster resolution time when problems occur, and improves system efficiency.

JFR is primarily used for:

Profiling

JFR continuously saves large amounts of data about the running system. This profiling information includes thread samples (which show where the program spends its time), lock profiles, and garbage collection details.

Black Box Analysis

JFR continuously saves information to a circular buffer. This information can be accessed when an anomaly is detected to find the cause.

Support and Debugging

Data collected by JFR can be essential when contacting Oracle support to help diagnose issues with your Java application.



 sources: Most of the information and images are taken from Oracle site.

No comments:

Post a Comment