A Practical Approach for Predicting the Performance and
Scalability of Distributed Component Systems
Samuel Kounev
Distributed component systems (DCS) are becoming increasingly ubiquitous
as enabling technology for modern enterprise applications. However, as
systems grow in size and complexity, analyzing their expected
performance and scalability becomes a more and more challenging task.
System architects and deployers are often faced with questions such as
the following:
- Which platform would provide the best cost/performance ratio for a
given application?
- How do we ensure that the selected platform does not have any
inherent scalability bottlenecks?
- What performance would the application exhibit and how much
hardware would be needed to meet SLAs?
- How do we ensure that the application design does not have any
inherent scalability bottlenecks?
Answering the first two questions requires measuring the performance and
scalability of platforms for DCS. Answering the second two questions
requires predicting the performance of a given system deployed on a
selected platform. In this talk, we present a systematic approach for
performance engineering of DCS that helps to address these questions.
The proposed approach is based on a combination of benchmarking and
performance modeling. We focus on J2EE-based platforms since they are
currently the technology of choice for building DCS. In the first part
of the talk, the major issues and challenges in benchmarking large-scale
J2EE platforms are discussed considering several state-of-the-art
benchmarks for J2EE. In the second part, a realistic performance
modeling case study is presented in which a real-world J2EE application
is modeled and its performance under load is predicted.
|