This chapter presents best practices for delivering and troubleshooting scalable high-performance systems. It is organized into three major sections:
System Performance , a discussion of core principles and strategies for scalable J2EE systems
Performance Best Practices , a collection of important design patterns and best practices that affect performance and scalability
Troubleshooting Performance Problems , a set of steps and techniques you can use to improve performance and solve scalability issues for your system
This chapter discusses design considerations and best practices we use while delivering scalable systems for numerous BEA customers. Information presented in this chapter represents the experience gathered while designing, prototyping, building, and benchmarking distributed systems over the last eight years . We have had the opportunity to work with very bright architects on many of the largest and most demanding systems deployed using BEA software.
This chapter cannot cover all aspects of J2EE performance, which could be the topic of its own book. We instead provide a number of key best practices and troubleshooting tips to help you achieve your performance goals. If you want more information about performance tuning, then we suggest looking at some of the existing books and Web sites on performance tuning and testing. In our experience, there is no one book that will tell you everything you need to know. To better understand operating system performance tuning, books like Sun Performance and Tuning: Java and the Internet by Adrian Cockroft and Richard Pettit (Prentice Hall, 1998) are invaluable. To better understand how to build applications that run in multithreaded Java environments, we recommend Concurrent Programming in Java: Design Principles and Patterns by Doug Lea (Addison-Wesley, 1999). To better understand Web application performance testing models, we recommend books like Capacity Planning for Web Performance: Metrics, Models, and Methods by Daniel A. Menasc and Virgilio A.F. Almeida (Prentice Hall, 1998). There are also several books available on both J2EE and WebLogic Server performance that may provide some additional insight. We also recommend looking at the WebLogic Server documentation at http://edocs.bea.com/wls/docs81/perform/index.html .