If you had to do capacity planning and hardware sizing "BEFORE" you had a chance to actually code and test the application (typically while you are defining solution architecture), how would you do it?

I know this can not be known accurately beforehand but the point is to present the approach at an early stage (including questions you need to ask, assumptions you need to make).

All you know, it will be an enterprise java application with App server, Web Server, Database. Business has given some number of concurrent "USERES" say 1000. Also assume that you will get a chance to fine tune your numbers after load testing the application but you can't be far off from the original estimates.


All you can base it on is experience with "similar" applications. And that's not likely to give you good estimates. If you have no such experience, or cannot get numbers from a "comparable" system in production elsewhere, you're up a creek.

It's mostly a nonsense requirement. So try to budget for an enormous amount of hardware and supporting infrastructure, and then look like a hero when you use 25% of that budget. Just remember you need N+1 redundancy, so at least two of everything, including databases, load balancers, etc.

  • Is there any way to arrive at CPU recommendation (speed, type)? Can requests per second translate into transactions per second for this purpose? – Nitin Gaur Jul 25 '12 at 3:58
  • No way to do that; it is totally application-dependent. A "transaction" for one application might be something simple like updating a single DB record, but for another it might involve hours of CPU time calculating the weather forecast for the next 3 days. – rmalayter Jul 25 '12 at 15:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.