Purpose of Capacity Planning
The goal is to manage system resources and utilize them efficiently.
Capacity Planning Process
Capacity planning involves balancing between rough estimates and detailed analysis. Avoid unnecessary deep dives and prepare detailed information only when needed.
-
Define application performance requirements
- Response time, throughput, concurrent connections, load performance, etc.
-
Understand the current infrastructure's operational status
- Measure the load characteristics of each architectural component (e.g., web servers, databases, storage) that make up the application and compare them with performance requirements.
-
Consider future needs to maintain acceptable performance
- Based on past data, evaluate what resources will be needed, in what quantity, and when, while considering budget and schedule.
-
Sizing
- Adjust the architecture (modifications, additions, removals) according to the capacity plan.
Measurement
System metrics should be evaluated in relation to the application's specific characteristics (e.g., how users utilize features, peak usage times, etc.).
By closely observing application performance trends, it becomes easier to determine which capacity areas should be prioritized.
Additionally, linking metrics to business requirements and indicators enhances the persuasiveness of technical investments.
Performance Tuning vs. Capacity Planning
Performance tuning aims to optimize the performance of existing systems.
Capacity planning, on the other hand, predicts what resources and when they will be needed based on the performance of existing systems, without focusing on optimization.
In capacity planning, observations based on actual usage are prioritized over benchmarks like load testing.
Goal Setting in Capacity Planning
The goals to be set in capacity planning include the following:
-
Performance
- Performance requirements based on monitoring
- Predict future performance needs
- SLA
- For web applications, primarily targets availability and performance metrics
- Business requirements
- User-expected performance
- Performance requirements based on monitoring
-
Capacity
- System metrics
- Resource limits
Safety Margin
The safety margin refers to the buffer percentage added as a risk hedge against uncertainties in the predicted capacity during capacity planning.
Determine a reasonable percentage based on past system performance trends and the nature of the application.
Requirements for Measurement Tools
- Ability to store data over a certain period
- Customizable metrics
- Capability to collect and compare metrics from arbitrary sources
- Ability to import and export metrics
The "observer effect" caused by measurement should be accepted as a necessary cost in capacity planning.