A characterization of a Java-based commercial workload on a high-end enterprise server
Abstract
While past studies with simple Java benchmarks like SPECjvm98 and SPECjbb2000 have been integral in advancing the industry, this paper illustrates some of the characteristics of a more complex and realistic 3-Tier J2EE (Java 2 Enterprise Edition) commercial workload, SPECjAppServer2004. In the course of this study, we both validate and disprove certain assumptions commonly made by researchers about Java workloads. For instance, on a tuned system having a heap of the appropriate size, the fraction of CPU time spent on garbage collection (GC) for this complex workload is small (<2%) compared to commonly studied benchmarks like SPECjbb2000 and SPECjvm98. In addition to high-level statistics on garbage collection and the execution profile, detailed hardware performance characteristics, such as the branch misprediction rates and lock contention, are evaluated and used to motivate future research directions. We also use statistical correlation to evaluate and compare the relative significance of different hardware events to the overall performance of the system.