Monday, June 20, 2011

Catching performance bottlenecks

Well I've been involved in several Performance issues and 90% of the time what I have seen is that asking the right questions would solve the problem and the other 10% is hope, pray, trial and error.

So I decided the I would share some of my experience in order help any IT personal who maybe praying, hoping and asking god to give some sort of solutions to a performance bottleneck.

Being a Java guy, I have been mostly involved in performance issues pertaining to JEE apps and surprise, surprise... 99% of the time the issue is with the application or the DB structures....
 
So here goes my two cents....

When I am called to check on performance issues I always go with a blank page... no pre-assumptions, no ideas why this is happening or what could be causing the issue.

The first set of questions I ask are

What does the user see as a performance issue?
When does he see it?
What is he doing when he see performance issues?
What has he done before getting the performance issues?

Well most of the time the performance issues comes in two folds,

1. The system is really slow in giving out a desired response
2. The system just crashes

I will cover the sluggish / slowness performance issues here and will have another dedicated article on system crashes and what I have done to handle them.

Well once I get to know that the issue is a slowness problem, I try to ask my second and third questions


When does he see it?
What is he doing when he see performance issues?

Most of the time the answers would be,

  1. When I try to go to certain screen or do some action in the screen
  2. When I run the application for a certain time
  3. At a specific time of day
  4. Or a real disgruntled customer would say ALL THE TIME 
From the above three questions and the answers that I get, I can start formulating some solutions.