An Introduction to JRockit Mission Controlby Marcus Hirt AbstractBEA JRockit Mission Control is a set of powerful tools provided with the BEA JRockit 5.0 R26 JDK. These tools deliver advanced, unobtrusive JVM monitoring and management, suitable for use both in development and production environments. This article gives an introduction to JRockit Mission Control, describing the main components in the suite, how this suite's components differ from competing technologies, and how you can use them to manage your JRockit JVM deployments. IntroductionJRockit Mission Control is the collective name of the tools provided with the JRockit 5.0 R26 JDK. It is a set of Swing applications you can use to collect and analyze information from the JRockit runtime in different ways. The next version of JRockit Mission Control will be based on the Eclipse Rich Client Platform and the separate tools available as Eclipse plug-ins. Most technologies used today to monitor, manage, and profile the Java runtime use fairly intrusive technologies, like byte code instrumentation and JVMPI (now deprecated and superseded by JVMTI). The main focus of JRockit Mission Control is to do the necessary instrumentation with the lowest possible impact on the running system. The technology used also enables the application to run at full speed once the tool is disconnected from the JVM. JRockit Mission Control therefore is suitable for use in production environments. The minimal overhead also minimizes the Heisenberg effect and may provide more representative data for your application than the more overhead-prone techniques. Let's look at the various components of JRockit Mission Control. JRockit Management ConsoleThe JRockit Management Console is a JMX-based console used to manage and monitor the JRockit JVM. It provides vital health data and a way to control the runtime characteristics of the JRockit JVM. Among the attributes you can monitor are the live set, the heap usage, CPU load, and any other attribute exposed by the MBeans registered in the JVM-internal platform MBean server. The JRockit Management Console also includes a low overhead method profiler and an exception counter. To monitor a JRockit JVM with the JRockit Management Console, first the management agent in the JVM to be monitored must be started. This can be done by starting the JRockit JVM with the -Xmanagement flag (see the JRockit Management Console documentation), by using JRCMD, or by using the Ctrl-Break Handler. You can also use JRCMD and the Ctrl-Break Handler to shut down the management agent. The JRockit Management Console consists of an agent running in the JRockit process, exposing the MBeans registered in the JVM-internal platform MBean server, and a separate JRockit Management Console Swing application. As Figure 1 illustrates, several instances of the JRockit Management Console can be connected to a single JRockit JVM, and a single Management Console can be connected to several JRockit JVMs. The Management Consoles should either run on different machines or use the -settings option flag to use different settings files. Note that since the console can handle multiple JRockit JVMs, there is usually no need to run multiple Management Consoles on the same machine.
From a high-level architectural perspective, the monitored JRockit includes:
The Method Profiler provides a very low-overhead means of finding out how many times a method is being invoked, and how much time is being spent in that particular method. The methods of interest are simply regenerated with a tiny amount of instrumentation code, which is removed the instant the profiler is stopped. The overhead of using the method profiler therefore is only incurred when you have selected methods for profiling, and only for the selected methods. The Javadocs for the JRockit-specific interfaces are published on Mission Control's home page. From a high-level architectural perspective, the Management Console Swing application includes:
The Management Console application introduces the concept of an Attribute Subscription, which, somewhat simplified, is defined by the MBean ObjectName, the Attribute Name, and the subscription interval. The console allows the user to add notification rules, and plot and persist data from such attribute subscriptions. The attribute subscriptions can be based on regular JMX MBean attributes, on individual composite data keys from an attribute, or on JMX notification data (where the subscription interval isn't interesting due to the asynchronous delivery of events from such a subscription). You can create your own composite attribute subscriptions that depend on several other attribute subscriptions for its data, or even create synthetic attribute subscriptions where it's up to you, the implementor, to provide the data. To summarize, the JRockit Management Console is a very flexible JMX monitor and management tool that provides a wealth of features:
For more information on how to configure the console to use SSL, authentication, and roles, see the JRockit documentation.
|
Article Tools Related Products Check out the products mentioned in this article:Bookmark Article
|