views:

42

answers:

1

Lets say a jee based e-commerce web site is performing well giving expected response time and throughput. The web site is undergoing major ui changes and it is expected to bring 3 times more traffic. How do I find out whether the projected web traffic could be handled by the existing environment? Is there a way to find it out using some empirical formula without actually load testing the system if I have the system utilization (CPU, memory utilization), throughput, response time of the existing system. (The goal is to determine whether the SLAs could be met in the design stage itself)

A: 

No there is no formula for this, there are just too many interdepend factors for this. The only way to get realistic numbers is by empirical tests. If you can't do this, you're only option is to go for overcapacity in hardware and do an educated guess that would go something like this:

  • Does the new UI impact CPU usage?
  • Does it take longer to render and transfer a page? Estimate the increase in concurrency.
  • Does more traffic also mean more data? If yes, how does this impact performance?
  • Are there any bottlenecks that could lead to an unexpected increase in concurrency?
  • How does the increased concurrency impact memory usage?
  • How does memory usage impact file system cache, database cache, JPA cache, etc.
  • Is performance IO bound? And how much spare capacity is available?
  • Is performance CPU bound? And how much spare capacity is available?
  • How much spare capacity in memory do you have?
Kdeveloper