J2EE performance optimization, part 3 - design of experiments for performance tuning
J2EE Performance Review Software: Software performance analysis of J2EE multi-tiered applications is more complex as the number of hardware and software components that can affect performance increases in many dimensions. This J2EE performance review article describes techniques to use when the number of tunable parameters is too large to examine one variable at a time.

by Kingsum Chow, Ph.D., senior performance architect, Managed Runtime Environments group, Intel Corp.

Software performance analysis of multi-tiered applications is more complex as the number of hardware and software components that can affect performance increases in many dimensions. In Part One of the series[1], J2EE Performance Optimization Part 1, we described a top-down closed loop approach to performance tuning. We then described how to apply the approach to a multi-tiered application in a case study in Part Two[2], J2EE Performance Optimization Part 2. While the method described earlier can be applied adequately when you can experiment with one tunable parameter at a time, at times an alternative approach is required, for example, to reduce the time to finish the tuning experiments, or to understand the impact of interaction of factors, which can be done by modifying more than one parameter at a time.

This article describes techniques to use when the number of tunable parameters is too large to examine one variable at a time. We describe how to use the design of experiments (DOE)[3] a well-known statistical approach, to manage for performance analysis. We will also introduce multivariate analysis (MVA)[4] to analyze data that involves multiple variables, and demonstrate how to apply the technique to optimize system configuration for a multi-tiered enterprise application.

A multi-tiered application typically depends on a large number of tunable parameters for improving the performance of the system. Many of the tunable parameters are useful only for programs with certain workload characteristics; a known set of configuration parameters optimized for one workload may not be the best for another. Re-examining all configuration parameters for different workloads is too time-consuming as the number of configuration parameters is large. The selection of proper optimized parameters for a particular workload is controlled by users via database (DB), operating system (OS), managed runtime (MRT) and application server configurations on all the machines involved. Since each configuration can contain many tunable parameters, the total number of parameters is usually large, and each may specify a large range of values. We face the following two problems:

  • Selection Problem: select the best set of parameters for a workload; solving this problem provides a powerful tool to obtain the best performance for user programs.
  • Interaction Problem: determine the interactions between tunable parameters; solving this problem helps both the users and the system developers to understand the effects of the tunable parameters.
The search space for the selection problem is very large. For example, 10 tunable parameters with binary values equals 2[10] =1024 experiments to be studied. Most people rely on educated guesses and often sub-optimal selection is used. Furthermore, the interactions among tunable parameters are often informally described such as "parameters A and B have positive or negative interaction."

Subscribers who liked this article also read:
Getting ready for hyper-threading technology, part I: changing the mindset
by Andrew Binstock, principal analyst, Pacific Data Works LLC. Intel C...
Wireless enterprise networking with mobile software
by Jim Geier, principal, Wireless-Nets Ltd. Intel Corp. Take a clos...

If you're interested in this topic, these articles may be helpful:

Creating high-performance embedded applications through compiler optimizations
from Intel Corp. The role of the compiler in application developmen...
Rational Performance Tester V8
Download a free trial version of Rational® Performance Tester. R...
Creating C# wrappers for Intel Integrated Performance Primitives using Microsoft .NET interoperability mechanisms
from Intel Corp. One of the beauties of .NET is that an object wri...
J2EE performance optimization, part 1: laying the foundation
by Kingsum Chow, PhD, senior performance architect with the Managed ...
Online Trial: Rational Performance Tester
Now you can try out Rational Performance Tester online without having ...

Related Jobs:

Sr. Documentum Developer #webm-00000434 - NY - New York - WebMd
Req Number: webm-00000434 Job Title: Sr. Documentum Developer ...
Software Engineer 2 #58131 - WA - Issaquah - Siemens AG
Software Engineer 2 Company Siemens Medical Solutions USA, Inc. ...
Microsoft Web Applications Specialist #55881 - GA - Alpharetta - Siemens AG
Microsoft Web Applications Specialist Company Siemens Energy and Au...
IIT 2007 - Global Conference/ Engineering #S815472 - CA - San Jose - Cisco Systems, Inc.
Cisco is hiring for multiple engineering positions in San Jose, Califo...
Web Master #4833043 - MD - Gaithersburg - Ajilon
Description : Short Description: The Sr. Web Master is respons...
Technical Architect Manager #13595 - NJ - Montvale - KPMG LLP
Job Title: Technical Architect Manager Requisition Number: 13595 ...
ETL/Oracle Application Developer #4831941 - NY - New York - Ajilon
Description : Ajilon Consulting has been a premier provider of inform...
Senior QA Eng- Perf. Test TOP #CTG-132 - MA - Boston - Pearson Education
Title: Senior QA Eng- Perf. Test TOP Req Number: CTG-132 Date Open...
Principal Web Developer #Q08962 - VA - Reston - BAE Systems
* Description: o GRAPHIC ARTIST/WEB DESIGNER with 5-10...
Software Engineer, Staff #58130 - WA - Issaquah - Siemens AG
Software Engineer, Staff Company Siemens Medical Solutions USA, Inc...