| By Rajagopal Marripalli | Article Rating: |
|
| August 5, 2008 04:30 PM EDT | Reads: |
6,320 |
Java developers use a variety of tools to diagnose performance problems. These tools provide deep visibility into an application's runtime behavior, including an in-depth view into problem areas with exact line numbers and object values. However, these tools have traditionally been limited to development environments.
However, if one of your production applications is running slowly, you need a diagnostic tool you can use in a production environment. If a particular request is slow, you need to find the line of code or method that is causing the problem and identify the method arguments or method local variables. To determine which resources are causing the performance bottleneck, you need to find the objects causing the memory leaks in a production application. How can you detect and diagnose these performance issues in real-time, as well as diagnose similar problems that happened last night or last weekend?
Diagnosing performance problems in production environments without stopping the application or impacting performance is almost impossible. Developers and administrators have become accustomed to reproducing performance problems in development and test environments, where they can use heavy-duty diagnostic tools to achieve deep visibility. But reproducing the problems is difficult or even impossible because production workloads are different from testing or development environments.
Diagnosing performance problems in a production environment would save significant time, money, and energy. So why are current tools and technologies unable to provide deep Java granularity with very low overhead in production applications?
This article highlights the need for production diagnostics, reviews some of the existing Java monitoring and diagnostics tools, and suggests a new approach for production Java application monitoring and diagnostics.
Why Production Diagnostics?
Diagnosing performance problems in a production environment accelerates problem resolution drastically. IT teams save time and money with production diagnostics because they do not have to waste time reproducing performance problems. Production diagnostics empower IT operations teams to diagnose application problems, and free developers and architects to debug difficult problems. Let's first examine existing monitoring and diagnostic tools for Java-based applications.
JMX-Based Monitoring
Java Management Extensions (JMX)-based tools have low overhead and are often used to expose vital JVM statistics and application-specific metrics. Figure 1 shows a JMX-based monitoring console. Application administrators can establish baselines on JMX-based metrics and be alerted when the metrics are above their thresholds. These tools can provide limited visibility based on the kind of metrics exposed by the application and underlying Java container.
JMX monitoring provides valuable indicators when there is a possible application problem due to a threshold violation. But how do you find out what caused the metric to violate its threshold? Administrators depend on other tools and environments to diagnose the root cause.
Published August 5, 2008 Reads 6,320
Copyright © 2008 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Rajagopal Marripalli
Rajagopal Marripalli is a principal product manager in the Oracle Applications and Systems Management division. His primary focus has been in the area of application performance management. He has more than 12 years of experience in the software industry in product development and product management. He has published papers and articles as well as presented technical seminars at conferences and user groups.
- Book Excerpt: Introducing HTML5
- It's the Java vs. C++ Shootout Revisited!
- Patterns for Building High Performance Applications
- OpenXava 4.3: Rapid Java Web Development
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Cross-Platform Mobile Website Development – a Tool Comparison
- Write Once Run Anywhere or Cross Platform Mobile Development Tools
- Three Buzzwords That Every CIO Hears but One They Should Listen To
- Immersing into JavaScript Frameworks
- Workday Reportedly Prepping to Go Public
- Book Review: Sams Teach Yourself Java in 24 Hours
- Book Excerpt: Introducing HTML5
- Adobe Sends Flex to the Apache Foundation
- Five Years Waiting for JRE 7: Is It Justified? (Part 1)
- Book Excerpt: Java Application Profiling Tips and Tricks
- i-Technology in 2012: Five Industry Predictions
- It's the Java vs. C++ Shootout Revisited!
- Patterns for Building High Performance Applications
- OpenXava 4.3: Rapid Java Web Development
- The Next Web Architecture
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Is Write Once Run Anywhere Ever Going to Be a Reality?
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- JavaServer Faces (JSF) vs Struts
- The i-Technology Right Stuff
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- What's New in Eclipse?
- i-Technology Predictions for 2007: Where's It All Headed?

















