Saturday, July 26, 2008

Capacity Planning - Series 1

Capacity planning is the exercise of determining the capacity required for the organization to meet the needs of the software application to in a cost effective manner so that the application performs within accepted and agreed Service Level Agreements. This science is not a precise science when done.

Im sharing my experiences in capacity planning through this series. When I started working on Capacity planning and took few books to read it, it was filled with lot of mathematical formulas to arrive at the numbers. So a warning note is that if you are interested in Capacity planning, you should be ready to deal with equations (yes, it can be solving linear equations, solving etc, which we have studied during our engineering courses).

There are two approaches of performing capacity planning.

Case i: If the application is not yet developed and implemented

Case ii: If the application is developed and we have a testing setup where the application can be subjected to test load.

In my working experience I have not done much of the case i and hence I would not be dealing with that section in detail. However you should be comfortable with the Utilization law and the queuing models to arrive at a good estimation.


This article will talk about how to proceed with capacity planning with situations that arise of Case ii.

Capacity Planning exercise will have to perform the following activities which will be required as Input to the calculation.

  1. Workload Profile – The workload can be defined in terms of transactions for online processes and as processes for Batch Processing. For an online application, the workload can have the following information
    1. Details about the user groups
    2. Details about Peak load timing
    3. Details about the various business transactions as well as its timing
    4. Details about the non business requirements like backup, archiving etc..
    5. Details about user locations.
  2. Expected SLA – The expected SLA should be captured. You should always try to get quantitative figures instead of qualitative figures like “good”, “perfect” etc. The SLA should also be defined for Peak load timing too.
  3. Future Growth – The growth pattern for the application as well as its usage should be collected. This will ensure that the application will function well in future and still meet the expected SLA.

Capacity planning exercise should have the following details as its output.

  1. Servers – Brand, Numbers, Location, Distribution and Load Balancing details.
  2. Disks – Stripping, Speed of the Disk, Capacity of Disks , Partitioning of Disks, Type of Disk (Clarion/Symmetrix)
  3. CPU – Type (AMD/Intel etc), Speed, Cores, Memory Cache, Number.
  4. Memory – Type, Amount, Expansion Slots, Max Memory.
  5. Networks – Expansion Slots, Channels, Network Cards (Embedded NIC’s)

No comments:

Post a Comment