Capacity Planning: Systems Sizing
Capacity planning is the process of determining the resources required to meet current and future demand while maintaining performance SLAs and minimizing cost.
1. Resource Modeling: Compute
In Kubernetes and cloud environments, sizing starts with Requests (guaranteed) and Limits (throttled).
2. Storage: IOPS and Throughput
Storage capacity is not just about GB; it is about I/O performance.
- IOPS (Input/Output Operations Per Second): Critical for databases.
- Throughput (MiB/s): Critical for streaming/logging.
- Concrete Spec: An AWS EBS
gp3 volume provides a baseline of 3,000 IOPS. If your database requires 10,000 IOPS for a 2ms latency SLA, you must provision and pay for the additional 7,000 "Provisioned IOPS."
3. Network: Bandwidth and PPS
- Bandwidth: Sized in Gbps. Important for data replication.
- PPS (Packets Per Second): A common bottleneck in high-frequency trading or small-packet microservices. High CPU usage in the kernel (
si in top) often indicates PPS saturation rather than application load.
4. The Planning Lifecycle
- Baseline: Measure current utilization during a 24-hour cycle.
- Stress Testing: Use
loadtest or locust to find the Break Point (where latency increases non-linearly). - Buffer: Add a 20-30% buffer for "Unknown Unknowns" and sudden traffic bursts.
- Forecasting: Apply growth rates (e.g., "5% user growth per month") to the breaking point to determine the Exhaustion Date.
See Also: