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...

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

Online Trial: Rational Performance Tester
Now you can try out Rational Performance Tester online without having ...
Creating high-performance embedded applications through compiler optimizations
from Intel Corp. The role of the compiler in application developmen...
Rational Performance Tester V7.0.1
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 ...

Related Jobs:

Sr Software Engineer #58589 - MN - Minnetonka - Siemens AG
Sr Software Engineer Company Siemens Power Transmission and Distrib...
Software Engineer #58587 - MN - Minnetonka - Siemens AG
Software Engineer Company Siemens Power Transmission and Distributi...
Sr. Documentum Developer #webm-00000434 - NY - New York - WebMd
Req Number: webm-00000434 Job Title: Sr. Documentum Developer ...
Principal Web Developer #Q08962 - VA - Reston - BAE Systems
* Description: o GRAPHIC ARTIST/WEB DESIGNER with 5-10...
IIT 2007 - Global Conference/ Engineering #S815472 - CA - San Jose - Cisco Systems, Inc.
Cisco is hiring for multiple engineering positions in San Jose, Califo...
Microsoft Web Applications Specialist #55881 - GA - Alpharetta - Siemens AG
Microsoft Web Applications Specialist Company Siemens Energy and Au...
Java Developer #17503BR - VA - Vienna - ManTech International Corporation
Responsibilities ManTech IS&T is looking for people to solve the tough...
Lead Documentum Developer #webm-00000435 - NY - New York - WebMd
Req Number: webm-00000435 Job Title: Lead Documentum Developer...
Software Engineer 2 #58131 - WA - Issaquah - Siemens AG
Software Engineer 2 Company Siemens Medical Solutions USA, Inc. ...
Tech Yahoo, Software Apps Dev Eng, Sr #RX1000025302 - CA - Sunnyvale - Yahoo! Inc.
Tech Yahoo, Software Apps Dev Eng, Sr Job No. RX1000025302 Loca...