What Is Capacity Planning?
What Is
Capacity Planning?
Capacity
planning is the process of determining what type of hardware and software
resources are required for running an application with a given user load at a
satisfactory level of service. It is a continuous and iterative process that
ensures that the required computing resources (primarily, hardware) for an
application are available at the right time.
Capacity
planning determines what your system needs (and when it needs it) to maintain
performance in both steady-state and peak usage periods.
Capacity
Planning involves designing your solution and testing the configuration, as
well as identifying business expectations, periodic fluctuations in demand, and
application constraints. You need to plan carefully, test methodically, and
incorporate design principles that focus on performance. Before deploying any
application into a production environment, the application should be put
through a rigorous performance testing cycle.
While planning
for capacity, always consider future growth requirements. It is important to
determine future requirements, well in advance, so that necessary action can be
taken to plan for, procure, and install the required resources. Besides
ensuring that adequate resources are available for meeting the performance and
scalability requirements, capacity planning can save considerable money and
resources for the organization.
Purpose of
Capacity
Planning
Capacity planning is necessary for the following purposes:
1.
To achieve
predictable and consistent performance
The load on a system may not always be uniform; it may
at times low, high, to very high than normal anticipated Load. Capacity
planning helps you provide users a satisfactory level of service at varying
server loads. If capacity is not
planned, and if adequate resources are not available, users may experience
significant variation in performance as the load varies. At very high loads,
the system may run so slow that users cannot even use the system.
2.
To
determine scalability characteristics
Capacity planning helps in determining the scalability
characteristics of the application. If the available hardware resources are not
adequate for the current load or if the load is expected to increase in future,
we can estimate the additional hardware resources required to maintain or
improve performance.
3.
To identify current capacity
Capacity planning helps in identifying limitations of
the existing hardware.
4.
To estimate
the additional hardware required to support increased demand
Capacity planning helps in estimating the additional
hardware resources necessary for the increased load due to factors such as
business expansion and changes in marketing strategy.
The following data must be recorded while running the
tests:
Application
behavior
– Concurrent user load
– Response time
– Throughput
Resource utilization
– CPU utilization
– Memory footprint
– Network utilization
– I/O utilization
Important
Tests to run as part of Capacity Planning:
1. Scalability
Tests
Vertical
Scalability (Scaling up)
Scaling the system by providing additional hardware
resources on the
existing machines. For e.g. increasing the number of
CPUs and/or memory on a
given server.
Horizontal
Scalability (Scaling out)
Scalinge the system by distributing the load on more
number of machines.
Usually this is achieved through the use of a load
balancer that routes the traffic across multiple application clones running on
separate physical servers.
2. Stress
Tests
3. Load Tests
Pretty good post about Software Testing Companies in New York. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts Software Testing Companies in Los Angeles. Any way I'll be subscribing to your feed and I hope you post again soon. Absolutely fantastic posting! Software Testing Companies in Dubai Lots of useful information and inspiration, both of which we all need! Really appreciate your work.
ReplyDeleteConsult today: Software Testing Services in San Francisco
ReplyDeleteYour blog has some excellent information; we appreciate you taking the time to share it with us. customer relationship management module in erp