advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

Articles : JVM Monitoring and Management Specification :

JVM Data:

One of the important pieces of information required for any monitoring tools is the operating system information and the extent to which these operating system resources are used by the JVM. This becomes tricky as Java applications run on a variety of platforms and operating systems. Some of the mandatory operating system information required by monitoring applications is the operating system name, version and arch. Other JVM specific information that is mandatory is the VM name, version, vendor, specification version, specification name, Java class path, Java library path, etc. The specification proposes that the monitoring model use as much information as the operating system can provide and then it will add the platform specific extensions to get the other kinds of information required for monitoring.

Apart from information from the JVM itself another source of monitoring data is the components within an application. Individual components can provide valuable information on threads, CPU utilization time, JIT compilation time, deadlock information etc. Information about these individual components may be difficult and expensive to retrieve, as these components may have varied implementations. Since these components usually run as separate threads on the JVM, data about these threads could be a good indicator of the performance of these components. Monitoring agents would require thread information like total number of threads created since the JVM started, current number of live threads, peak number of live threads, number of daemon threads, etc. Added to this is, specific information about the individual threads that can be used to know more about the application. Data like, Thread identifiers, thread state, the monitor the thread is blocked on, the thread that blocks the monitor, total number of contentions, and the thread stack trace can be used to identify deadlocks and thereby improve performance.

One of the most important indicators of the health of the system is the memory usage. The JVM contains three memory pools and two memory managers to help in monitoring. One pool is for object allocation managed by a mark and sweep compact collector. The second one is for method area which is also managed by a mark and sweep compact collector. The third one is for native compiled code managed by a malloc/free manager. The first pool belongs to the heap memory and the rest of them belong to the non heap memory. The heap memory is a runtime data heap used by the JVM to store class instances and array objects. The memory in the heap is subject to automatic garbage collection by the garbage collector. The heap memory is defined by the JVM specification and will be uniform across multiple implementations of the JVM. However JVMs can use non heap memory to store data other than those stored in the heap. These can be runtime field and method data. Some JVM implementations can allocate resources on to the non heap memory to improve performance. These allocations are not specifically prohibited by the JVM specification.

For the JVM the memory pools and memory managers are abstract entities. The JVM would at least have one memory pool and it can create or remove additional pools at runtime. In the same way the JVM can have one or more memory mangers and it has the ability to add or remove new memory mangers at runtime. The JVM can gather data about these memory pools and memory mangers and pass it on to the monitoring tool for analysis. Some of the information that the monitoring tool requires from the memory pool are the list of memory pools, size of the pool when it was initialized, size used, the size that is guaranteed by the JVM, and/or the maximum size of the pool. The memory manger should provide information of the name of the manager and the details of all the pools managed by the memory manager. Heap attributes required by the monitoring tools are the initial memory allocated on the heap, memory already used, maximum memory the JVM can use on the heap and more.

API Requirements:

The API will have the ability to be used in a production environment with minimal intrusion. It will have access to all the mandatory data and the optional data discussed in the above section. The API will have on demand monitoring capability and will be pluggable without a restart of the system. The interface shall support multiple threads. The API shall provide the above mentioned facilities using JMX Mbeans. The API shall be extensible so that platform specific support can be provided.

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 Microsoft Visual Studio 2010 Showcase
 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 39
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Windows 7: From Beta to Final Code in One Year
Google Shows Off Chrome OS, Releases Source
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?
Fedora 12 Takes Aim at Linux Networking
Top Supercomputer Nearly Doubles in Speed
Fedora 12 Linux Tackles Virtualization
Apple Gives iPhone Developers App Status Tracker
Novell Sets OpenSUSE 11.2 Free

Creating Custom Export Filters for StarOffice with XSLT
WPF Wonders: Using DataTemplates
Crystal Reports Family Offers Options for Developers
Avaya Aura Session Manager video
Avaya Aura Overview video
Exploring HTML 5's Audio/Video Multimedia Support
Overriding Virtual Functions? Use C++0x Attributes to Avoid Bugs.
Understanding the Cloud Computing Security Vulnerabilities
Cisco and IBM Target a Greener World
Upgrade to Visual Studio 2010 with the Ultimate Offer

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs