News: Chapters: Pro Java EE 5 Performance Management and Optimization
According to Steven Haines, performance and scalability testing are crucial to successful application deployment. These two chapters, taken from Pro Java EE 5 Performance Management and Scalability, illustrate how to set up a proper testing environment and the strategy of ensuring performance before testing for scalability. Chapter 6, titled "Performance Tuning Methodology," focuses on setting up a proper testing environment and explores the concept of wait-based tuning. Haines explains the steps necessary to implement a formal performance tuning methodology and guides the reader through a complete tuning example. Chapter 9, titled "Performance and Scalability Testing," discusses the difference between the concepts of performance and scalability, and outlines the strategy of ensuring performance before testing for scalability. Haines also leads a detailed exploration into the ultimate scalability test - the capacity assessment - and explains how to assemble a formal Capacity Assessment Report. What do you think of the testing methodologies that Haines describes? What are your thoughts on Haines' wait-based tuning?
- Posted by: Regina Lynch
- Posted on: October 11 2006 14:33 EDT
- Re: Chapters: Pro Java EE 5 Performance Management and Optimizat by Cédrik LIME on October 12 2006 11:28 EDT
A great book really! Corners a lot of cases to think of when tuning a system, neatly packed and conveniently arranged. In your tool arsenal showing you what's going on with your servers, you can also use MessAdmin on the application server. It will provide you, among others, with lots of detailed statistics on your session-bound objects sizes, request processing times, users connected to the system, the path they've navigated to, etc. As a bonus, you can even send messages to connected users! All of this comes in an easy to install package, bearing no change to your applications, and very light-weight on the server (both CPU and memory-wise). Check it out! Cédrik ________ MessAdmin, your one and only solution for J2EE administration!
I've just take a look at chapter 6, good story and cases but not technical at all. He talks about heap optimization at some point but not more, I'm curious here about some java options because after some research on similar conditions (high concurrency and server loading) I've found that the best one is the simplest one: -server (this is on Linux) except it, the rest of them not show a lot of difference. I think that having the story but with more technical data will make the book really good. ... maybe in the next version.
I know that this may sound like I'm selling a book, which I guess I am :) but if you are looking for more specific information about application server tuning, chapters 7 and 14 in the book go much deeper in that realm, with some specific recommendations on heap tuning. In chapter 6 I tried to present the theory of wait-based tuning: identify the tier-based and technology-based points within your environment that can cause your requests to wait and optimally tune those. So I'll agree that chapter 6 is very theoretical, but the book has plenty of ready-to-use out-of-the-box advice that has worked wonders for me in the field. What JVM are you using and having challenges with? I have found significant differences between some tuning options, especially in 1.4.x and earlier versions of the Sun JVM that have really saved me on tuning engagements...
Chapter 7 said to configure JVM using MaxNewSize,NewSize, and SurvivorRatio. Like: -Xmx1024m -Xms1024m -XXMaxNewSize=448m -XX:NewSize=448m -XXSurvivorRatio=6 -Xmx2048m -Xms2048m -XXMaxNewSize=896m -XX:NewSize=896m -XX:SurvivorRatio=6 Why not just using -XX:+AggressiveHeap ?