, , , , , , ,

Some projects we work on, gives us a deja vu feeling. One feels like “I have been thru this already” … “Oh … the same old thing again”. But some projects take us into an unchartered territory. There is a sense of fear (of failure) and a sense of challenge. Intense learning comes from sincerely working on such projects. Such opportunities don’t come by very often. Recently, I had one such experience with Performance Load Testing of a web application.

This wont be a how-to-do a performance testing kind of a thing. There are already many, written by experts. Instead, I would focus on 4 key learnings that I derived out of this experience. I feel, this is unique in its own way, and hence worthy of being shared.

This will be the first part of the 5 part post that I intend to blog. In this introductory post, I shall set the context and name the four key learnings. I do this, partly, to commit myself to write about the four learnings in detail in the coming days.

The Context
For an online competition product, I had to estimate the safe concurrent load that it can take on a server of a given configuration. The web application is built on J2EE (using Servlets & PoJos).

We used a completely Open Source stack

Server – Dell 6950, 12 GB RAM, 4 Dual Core AMD 8214, 64 bit
OS – CentOS 5
Load Balancer – HAProxy
Web Server – Tomcat 5.5
Database – MySQL 5
Development – Java Servlets, Java POJOs, FreeMarker, JavaScript

The Java Runtime Environment used was a 32bit environment (which means only 2 GB max memory per VM, btw we use Sun jdk 1.5.x ).

The key learnings were
1. Know your load
2. Know your tool
3. Know what to expect
4. Use your brains

More on these learnings soon.