Welcome!

Java Authors: Walter H. Pinson, III, Maureen O'Gara, Yakov Werde, Tony Bishop, Kevin Jackson

Related Topics: Java

Java: Article

Managing Java Performance Across the Application Life Cycle

A lot depends on Jave J2EE applications - your company's future, for instance

A proper solution for accurate timing of code under test is to combine a performance analysis tool with an automated testing solution to produce highly accurate and repeatable timing data. Measuring CPU cycles and execution time with precise granularity makes it possible to attribute relevant timing data to each appropriate line of Java code, method, or class in the application. It also measures separately the time a Java application spends executing library code, virtual machine code, and underlying system code.

Load testing a feature-complete application in a preproduction environment is one of the best predictors of real-world application performance, and has become a common practice for delivering enterprise-class business applications. It is in this environment that an enterprise application's ability to scale to peak user loads while maintaining required service levels can be tested and measured.

Automated load testing tools not only require far fewer humans than manual testing, but also provide the opportunity to stress-test an application by scaling the number of virtual users to a level beyond anticipated use. The result is a very powerful testing solution that no enterprise software organization should be without.

Production Deployment
Performance problems that arise in production have an immediate impact on the business, and need to be dealt with quickly and effectively. Unfortunately, once an application goes live, it is in the domain of IT operations, out of the reach of developers and their application-centric tools. Network analysts, systems analysts, and other support staff monitor the infrastructure in which the application runs, and possibly even the application server container in which it runs, but have little knowledge about the health of the J2EE application.

When a production application falls below required service levels, an alert may be triggered or calls may begin to flood the help desk. In either case, IT analysts take notice. They look at server, database, and network utilization, but rarely come up with a root cause in short order. Once they figure out that everything seems to be "performing normally" in the infrastructure, the development organization is consulted. While operations can confirm that an application has slowed to a crawl, there is usually very little useful information they can offer the developers.

Application performance monitoring tools are ideally suited to bridging the gap between IT operations and development in application triage scenarios like the one described above. They provide continuous monitoring of J2EE application performance and resource utilization without impacting production-level performance.

Application Performance Management
Once an application or portfolio of applications has been deployed with acceptable performance results, ongoing monitoring and management of applications and infrastructure is an important factor for documenting service-level agreement compliance and ensuring sustained application performance. Although this topic is out of scope for this article, it is certainly worth mentioning as an epilogue.

Many organizations measure service only at the device level, leaving performance issues undetected until users begin to complain. When service delivery is approached as an integrated whole, IT organizations must not only manage infrastructure performance, but must also manage application-service levels in order to meet business demands and priorities. To accomplish this, IT organizations need proper tools to:

  • Measure end-user experience of application availability and response times
  • Prioritize performance issues based on their business impact
  • Systematically resolve problems via accurate analysis of performance issues
  • Monitor and analyze application performance automatically and continuously across the client, network, server, and database tiers
  • Capture performance analysis information at the time of service-level exceptions
  • Integrate all monitoring and measurements into useful, management-level reports that expedite service and support, and reduce confusion and delay.
The hallmark of an exceptional IT organization is its evolution from reactive application management to proactive service assurance. To make the transition from reactive to proactive, IT organizations require a level of end-to-end application insight and analysis that is attentive to business requirements and accurate in predicting performance levels. Performance monitoring tools with predictive analysis features enable IT organizations to assure predictable service levels through a "what if" analysis feature that calculates and displays the impact of various performance adjustments on a transaction's response time. This technique allows IT planners and analysts to tune parameters such as network bandwidth and latency, server load, and application turns in order to make necessary performance adjustments before application deployment, or to validate corrective actions made in production.

Conclusion
Creating and sustaining application performance and availability in today's complex distributed computing environments calls for a life-cycle process to ensure application performance, and the proper tools to solve problems quickly through collaboration across IT disciplines. Enterprise application performance planning must begin at the earliest possible stage, preferably at the business-unit level, even prior to technical requirements and analysis. Clearly defined performance requirements are the best insurance that application performance will be considered from architecture and design, through development and QA, and on into the production environment.

Software defects, both functional and performance-related, are extremely expensive to fix once an application has reached production. By adhering to best practices at each stage of the application life cycle, application performance can be optimized properly at each stage, avoiding costly downtime and application brownouts.

Compuware Software Solutions

Compuware offers a wide range of products and services that help IT organizations meet application performance requirements throughout the application life cycle.

  • Optimal J: Model-driven development for Java
  • DevPartner Java Edition: Comprehensive application development, debugging and tuning
  • QACenter Performance Edition: Automated performance testing for accuracy and scalability
  • Vantage: Service management through integrated monitoring and performance analysis
(see Figure 1 and Figure 2)

More Stories By John Reichard

John Reichard is a senior technical specialist for Compuware Corporation.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
JDJ News Desk 12/22/05 10:58:23 PM EST

Managing Java Performance Across the Application Life Cycle
A lot depends on J2EE applications - your company's future, for instance. Ensuring the performance of complex enterprise applications built on the J2EE architecture can be difficult. To meet that challenge, managing these strategic assets needs to be looked at as a process that spans the J2EE application life cycle.