Capacity Planning Basics
July 11, 2013

Bob Wescott
The Every Computer Performance Book

Share this

Capacity planning is the simple science of scaling the observed system so you can see if you have enough resources to handle the projected peak load, but it only works for resources you know about.

Capacity planning is like a pre-party checklist where you check if there are enough: appetizers, drinks, glasses, places to sit, etc. Assuming you know how many guests will show up and have a reasonable understanding of what they will consume, everything you checked should be fine. However, even if you miss something, you are still better off having planned for reasonable amounts of the key resources.

Capacity planning starts by gathering key performance meters at a peak time on a reasonably busy day. Almost any day will do, as long as the system load is high enough to clearly differentiate it from the idle system load. Then ask the boss: “How much larger is the projected peak than what I have here?” Answers like: “2X” or “about 30% more” are the typical level of precision you get.

Now scale (multiply) the observed meters by the boss’s answer to get the projected peak utilization.

65% busy * 2 = 130% busy at peak (FAIL)

Often you will then find a resource, or two, that will be too busy at your projected peak. In that case, the load has to be handled by:

- Moving it to a faster machine

- Splitting it over several machines

- Reengineering the application for efficiency 


In my experience, the application is rarely reengineered unless the inefficiency is egregious and the fix is easy and obvious. In most situations, people tend to value application stability more than the money they will spend to solve the problem with more hardware.

Capacity planning can be that simple, but there are a few more things you need to consider. 


Even though you base your projections on one peak day, you should look at the data over a period of a few days to a few weeks. This gives you a clear picture where the usual daily peaks are and if there are things going on at odd times that you have to factor into any changes you propose. 


Capacity planning can show you how busy key resources are at peak load, but it can’t tell you about response time changes as the load increases. Even with perfect metering, doing the response time calculations is a staggering challenge. Any CIO would be very uneasy betting his or her job on them. 


Many resources do not have a utilization meter. These resources take a little more work and creativity to capacity plan for, but this is completely doable. 
For example … If every transaction grows key files by X bytes and there is no way to move the file or add more disk during the annual peak load week, then do the math to make sure there is enough disk space in place before the peak week starts.

Capacity planning is a good first effort at dealing with future peaks. It can be done quickly with few additional costs or risks. If you need more confidence in your plan, or you need to hold the response time down to a reasonable level, or if the future you are planning for includes significant changes to the transaction mix or vital systems, then you need to do either Load Testing or Modeling. They sound a little scary but, as Douglas Addams once wrote, “Don’t Panic.”

Bob Wescott is the author of “The Every Computer Performance Book”.

Related Links:

More information on this, and many other useful ideas, can be found in Wescott's book:

The Every Computer Performance Book

Bob Wescott, Author of "The Every Computer Performance Book" Joins the BSM Blog

Share this