Every FinOps engineer eventually discovers the same frustration: provider-native optimization tools rely primarily on CPU utilization to generate right-sizing recommendations, and CPU utilization alone produces recommendations that engineering teams reject at a high rate. In our experience across 50+ accounts, teams accept built-in recommendation tool suggestions roughly 38% of the time. The other 62% are declined, deferred, or ignored because the recommendation misses something the engineer knows about the workload.
The issue is not that the CPU metrics are wrong. They are accurate. The issue is that CPU utilization is one dimension of a multi-dimensional decision. When right-sizing tools collapse that decision to a single metric, they generate recommendations that are technically defensible but practically wrong.
The Four Dimensions of a Complete Right-Sizing Signal
A right-sizing decision for a compute instance requires at minimum four independent signals: CPU utilization, memory utilization, network throughput, and disk I/O. These four dimensions map to the four primary resource constraints an instance type satisfies. Optimizing for any one while ignoring the others produces a recommendation that may actually increase cost or cause performance degradation.
Consider the pattern we see most frequently: a web application server on a general-purpose large instance with average CPU utilization of 14% and p95 CPU of 31%. A single-metric tool recommends downsizing to a half-sized equivalent. The recommendation appears sound. But the instance is handling 2.4 Gbps of sustained network throughput during business hours, and the smaller instance type tops out at burst bandwidth that degrades under sustained load. Under real production traffic, the smaller instance will throttle.
Network metrics are available from most platform monitoring systems at one-minute resolution. The problem is that most right-sizing tools do not incorporate them because the correlation logic is more complex. You need to establish whether the network throughput is bursty — where burst capacity handles it fine on a smaller instance — or sustained, where the dedicated bandwidth of the larger instance is actually necessary. That distinction requires 90 days of data and a burst-vs-sustained classification step. Most tools skip it.
Memory: The Metric Platform Monitoring Doesn't Capture by Default
Built-in platform monitoring typically does not collect memory utilization from compute instances without an agent installed and configured to collect it. This is not a minor gap. Memory pressure is the primary reason right-sizing recommendations fail for database-adjacent workloads, caching layers, and JVM-based applications.
In accounts without monitoring agents deployed on compute instances, right-sizing tools are operating blind on memory. A memory-optimized instance running a Java application with a 28GB heap will show 22% average CPU utilization and look like a prime right-sizing candidate. Downsize it to a half-sized variant with 16GB of RAM, and JVM garbage collection overhead increases substantially. The resulting performance degradation may not appear until load testing, or worse, until a production incident at 2 AM.
The practical solution is to install a monitoring agent with at minimum memory and disk I/O collection enabled before beginning any right-sizing analysis. Without that data, any recommendation for memory-bound instances is speculative. We require 30 days of agent-collected memory data before generating right-sizing proposals for any instance running a database engine, JVM application, or in-memory cache. The 30-day window is not arbitrary — it needs to capture at least one full utilization cycle for the workload.
How Sampling Interval Distorts the Picture
Standard platform monitoring collects metrics at 5-minute intervals by default. Enabling detailed monitoring reduces that to 1-minute intervals. For right-sizing analysis, the difference is significant in ways that are easy to underestimate.
A 5-minute average for CPU smooths over peaks that last 2-3 minutes — peaks that are nonetheless real load events the instance needs to handle. The standard recommendation to use p95 CPU utilization as the baseline for right-sizing assumes that the p95 represents the actual peak demand the instance must satisfy. With 5-minute averages, a spike that lasts 3 minutes may appear in one or two 5-minute samples, heavily diluted. The p95 calculated from those samples understates the actual peak.
We enable detailed monitoring for all instances before running the analysis engine. The incremental cost is approximately $2.10 per instance per month. For any analysis window longer than 30 days, that cost is recovered immediately by the improvement in recommendation accuracy. The savings from avoiding a single bad right-sizing recommendation and its attendant rollback usually cover months of detailed monitoring costs.
Day-of-Week Segmentation: Why Weekly Patterns Matter
Workload patterns for most business applications follow a weekly cycle. Monday through Friday behaves differently from Saturday and Sunday. Batch jobs run on specific days. A single 90-day utilization average flattens this pattern and may produce recommendations that are correct on average but wrong during peak periods.
Correct right-sizing analysis segments utilization by day of week and calculates p95 independently for each segment. For a workload that peaks heavily on Monday morning, the right-sizing baseline should be the Monday p95 — not the average across all seven days. For a batch workload that runs only on Sunday nights, the baseline needs to incorporate the Sunday peak in its headroom calculation, not dilute it across six low-activity days.
This segmentation is straightforward to implement given the raw metric data, but it requires retaining and processing 90 days of per-instance metrics at 1-minute resolution. That is a non-trivial data pipeline, and it is one reason most hosted right-sizing tools skip the step. Skipping it means your right-sizing engine will consistently generate underpowered recommendations for batch-heavy and cyclical workloads.
Application-Layer Metrics Are Out of Scope for Platform Monitoring
Platform monitoring captures infrastructure signals. It does not capture application-layer signals: request queue depth, cache hit rate, connection pool saturation, garbage collection pause frequency, or downstream service latency. For many workload types, these application-layer signals are the most accurate indicators of whether the instance is correctly sized.
A Java service running 22% average CPU with a p95 of 34% looks under-loaded by infrastructure metrics alone. Add in the GC pause frequency data and you see that the JVM is spending 8% of wall-clock time in garbage collection — a number that will increase non-linearly if the heap is reduced by downsizing the instance. The right-sizing decision without the application-layer signal is technically reasonable. With it, the answer is clearly "do not downsize until you tune the heap configuration."
This is the structural gap that platform monitoring cannot fill by design. It monitors the platform, not the application. An independent right-sizing platform that can ingest application metrics alongside infrastructure metrics produces categorically different recommendations for complex workloads.
The Approval Gap: Why Technical Accuracy Is Not Enough
Even a perfectly accurate right-sizing recommendation will be declined if the engineer responsible for the instance does not understand the evidence behind it. Right-sizing is not purely a technical problem — it is a workflow problem. The engineer who provisioned the instance has context that the metrics do not capture: an expected traffic spike, a migration in progress, a dependency on instance-level features that would change under a different instance family.
This is why the proposal workflow matters as much as the analysis accuracy. A right-sizing recommendation that shows the engineer the evidence behind it — the 90-day CPU baseline, the memory profile, the network throughput history, the day-of-week segmentation — gets accepted at a much higher rate than one that simply says "downsize to smaller instance." In our data, recommendations with full utilization evidence attached have a 71% acceptance rate versus 38% for recommendations without supporting data. Same analysis, different presentation, nearly double the implementation rate.
Commitment Planning Should Come After Right-Sizing
A common mistake in FinOps practice is making capacity commitment decisions before completing the right-sizing analysis. Committing to a reserved instance or a usage-based discount plan at the wrong size locks in the over-provisioning cost for one to three years. The commitment discount is real, but it is applied to a number that is too large.
Both right-sizing and commitment optimization are valid cost levers. But combining them into a single recommendation — "downsize and lock in a reservation" — creates compounding risk. If the right-sizing recommendation turns out to be incorrect, the commitment makes rollback expensive. We recommend completing right-sizing analysis and running the resulting instances at the correct size for at least two weeks before evaluating commitment candidates. As we discuss in our article on reserved capacity vs. usage plans, the commitment decision should come after you have high confidence in the baseline size.
What a Complete Right-Sizing Signal Looks Like
A right-sizing analysis that produces actionable, accepted recommendations requires the following inputs at minimum: CPU utilization at 1-minute resolution over 90 days, memory utilization from an installed agent over 30 days minimum, network throughput at 1-minute resolution over 90 days, disk read/write bytes for storage-bound workloads, and utilization segmented by day of week and by business hours versus off-hours.
From those inputs, the right-sizing engine identifies the smallest instance type that satisfies observed p95 demand across all four dimensions, with a configurable headroom buffer applied to each dimension independently. The headroom percentages should be configurable per team — a critical production database should carry more headroom than a staging environment for a batch pipeline.
When you build the analysis on all four signal dimensions with correct sampling and segmentation, acceptance rates improve substantially. The analysis takes longer and requires more data infrastructure, but the outcome is a set of changes engineers actually implement — which is the only metric that matters in a cost optimization program.
See KernelRun's multi-dimensional right-sizing analysis
KernelRun collects all four signal dimensions, requires agent-collected memory data, and presents full utilization evidence with each proposal. Connect your first account in 4 minutes.
Request a Demo