Rants
Questions
Soapbox
Best Practices
Apply today for a FREE subscription to CIO Magazine!
Fri, Nov 27, 2009 1:31 EST
|
Posted by: Dr. Ram in Best Practices Topic: Applications
Current Rating: |
After working with many clients in the area of Performance Engineering, I'm beginning to feel that "best practices" in this area is an oxymoron. Here are some examples of what is considered good practice, and my 2 cents on it. It would be nice to have comments and opinions.
Best Practice 1: Ask your vendor to guarantee a response time limit for critical business functions.
Fact: You need to specify what percentile is associated with this limit, based on what percentage of times users are willing to put up with response times going beyond the agreed "limit". No application design method can guarantee an absolute upper limit.
Best Practice 2: When creating a capacity plan, have a buffer of 1.5-2X.
Fact: The buffer limit must be based on a statistical model of the workload. An in-house app deals with Poisson traffic, and 1.5X would probably be too much. An Internet app deals with fractal traffic, and 15X would probably be too little.
Best Practice 3: Profile your code well and invest in speeding up the hot spots.
Fact: Bottlenecks that profiling shows up bear no relationship with bottlenecks that show up due to queuing phenomena under medium to high loads.
Best Practice 4: During performance testing, create a virtual user mix that emulates the real user mix.
Fact: What matters in determining system response is the mix of transaction arrival rates, not the user mix. Replicating the user mix almost never mimics the actual transaction mix.
Best Practice 5: If your performance test is successful but the deployed app is sluggish, blame the performance test team.
Fact: Hmm...
-Ram