How Do I Build a 5-Step Shared CPU Migration Process?

19 September 2026

Views: 3

How Do I Build a 5-Step Shared CPU Migration Process?

Over the last decade, evolving cloud infrastructure strategies have highlighted one persistent source of cost inefficiencies: always-on small services running on cloud instances with shared CPU resources. These services exhibit low average CPU utilization, tempting operations teams to switch to smaller, shared CPU instance types to save costs. However, this migration is often complicated by misunderstandings around shared CPUs, varying definitions across cloud providers, and overlooking critical performance percentiles and workload spikes.

In this post, we'll develop a 5-step shared CPU migration process built on the practical use of AWS Compute Optimizer and Azure Advisor. This process emphasizes measuring and classifying workloads precisely before making migration decisions, risk-scoring workloads, running pilot migrations, and ensuring post-migration safety through rollback criteria.
Why Shared CPU Migration Is Tricky
Many cloud users view shared CPU instances as a “lower-cost but also lower-performance” option. The reality, however, is more nuanced:
Shared CPU definitions differ by provider: AWS uses concepts like burstable vCPU credits for T-series instances, while Azure's B-series employs similar credit models but with different mechanics and metrics. Average CPU utilization is misleading: Watching just the mean CPU obscures peaks and performance spikes that matter for SLAs. Always-on small services hide cloud waste: These services often consume compute hours non-stop but are under-provisioned for peak bursts or have idle resource reservations.
Addressing these misconceptions requires a metrics-driven, methodical approach.
Overview of the 5-Step Shared CPU Migration Process Measure Metrics with the Right Observation Window Classify Workloads Using Percentiles & Spike Duration Price & Risk-score Workloads Using Cloud Tools Execute a Pilot Migration with Clear Rollback Criteria Review, Optimize, and Scale the Migration Step 1: Measure Metrics with the Right Observation Window
The first mistake teams make is to look at average CPU utilization over 1-minute or 5-minute intervals when deciding if a workload can run on a shared CPU instance. This approach ignores:
Short, high-impact CPU spikes that could saturate a shared CPU. The duration of CPU bursts that the target instance type supports.
What you want instead is to:
Capture CPU usage at high resolution (such as 10-second granularity) for a prolonged period (ideally 2-4 weeks). Observe P95 and P99 CPU utilization, not just the mean—always ask, “What do P95 and P99 look like before touching instance types?” Understand how long workloads remain at high CPU, since short spikes (a few seconds) may be tolerable, but sustained load beyond the burst credit window is problematic.
For example, AWS CloudWatch can emit CPU utilization metrics in 1-minute periods by default. Use custom metrics or enhanced monitoring to get 10-second granularity aws compute optimizer https://smoothdecorator.com/how-do-i-use-p90-p95-and-p99-5-to-classify-cpu-demand/ where possible. Azure Monitor provides similar capabilities via diagnostic settings and metric APIs.
Example: CPU Utilization Distribution Percentile CPU Utilization (%) Mean12% P508% P9555% P9985%
The difference between mean and P99 here is striking: relying solely on the mean (12%) underestimates the real peak demands and risks underprovisioning.
Step 2: Classify Workloads Using Percentiles & Spike Duration
Once you have the raw data, the next step is to classify which workloads are good candidates for shared CPU migration. This classification involves:
Identifying whether the P95 and P99 CPU spikes fit within the burst credit budget of your target shared CPU instance. Measuring the duration of these spikes to ensure the workload won't exceed burst windows and throttle. Separating workloads that have steady high CPU demands from those that are “usually idle but occasionally spike.”
Example classification categories:
Safe for shared CPU: P99 max CPU ≤ 60%, spike duration ≤ burst credit window Risky: P99 CPU between 60%-80%, moderate spike durations Unsuitable: P99 CPU >80%, sustained high usage
This classification informs prioritization—migrate safe workloads first, pilot risky ones carefully, and exclude unsuitable workloads.
Step 3: Price & Risk-score Workloads Using Cloud Tools
With a workload classification in hand, you can leverage cloud-native tools to estimate cost savings and verify technical feasibility:
Cloud Provider Tool Primary Feature How to Use for Shared CPU Migration AWS AWS Compute Optimizer Resource utilization and right-sizing recommendations Use to generate instance type recommendations inclusive of burstable T-series. Review the risk score based on workload performance data. Combine with your own P95/P99 metrics for cross-validation. Azure Azure Advisor Cost and performance recommendations Use Advisor’s Compute recommendations to find candidates for B-series or other shared CPU VM types. Integrate with Azure Monitor data on CPU percentiles and spike duration.
Both these tools provide a risk score or confidence level that helps prioritize migration candidates. Align those scores with your classification from Step 2. The goal is to maximize savings without exposing critical workloads to unacceptable degradation.
Step 4: Execute a Pilot Migration with Clear Rollback Criteria
What’s the point of all this analysis if you move everyone at once? Never do that.

A pilot migration on a small subset of workloads or non-production environments is essential. Here’s how to approach it:
Define pilot workloads: Choose workloads classified as “safe” and with low risk scores. Establish rollback criteria before migration: For example: P95 latency must not degrade by more than 10% No throttling event greater than 5 minutes Error rates ≤ baseline Use monitoring and alerting extensively: Watch CPU credits, latency, error rates, and customer impact. Be prepared to revert immediately: Automation is your friend here to switch back.
This pilot validates assumptions, workloads, https://dibz.me/blog/what-should-i-measure-besides-cpu-for-a-shared-cpu-migration-1253 and your data collection strategy. If rollback criteria trip, dig into metrics and logs to diagnose before proceeding.
Step 5: Review, Optimize, and Scale the Migration
Once your pilot passes the safety criteria, you can reliably scale the shared CPU migration by:
Updating your workload database with pilot learnings. Applying refined classification and risk scoring to broaden candidates. Automating migration and monitoring processes. Continuously reviewing performance percentiles and adapting instance types as workload patterns evolve.
Remember, shared CPU migration is an ongoing cycle, not a one-time event. Always monitor that P95/P99 CPU performance and rollback thresholds to prevent “breaking” production workloads.
Summary and Best Practices Don’t trust average utilization: Use high-resolution metrics with P95 and P99 percentiles to capture true workload peaks. Understand provider differences: AWS T-series and Azure B-series shared CPU mechanisms differ; knowledge is necessary to interpret credit budgets and burst windows. Classify workloads carefully: Use spike duration and percentile data, supplemented with cloud tools like AWS Compute Optimizer and Azure Advisor. Run pilots with rollback criteria: Define clear performance and error thresholds before migration to avoid costly outages. Measure, optimize, repeat: Optimize your migration process as you scale, leveraging pilot data and continuous monitoring.
By following this 5-step process, cloud practitioners can safely unlock cost savings from shared CPU migration without compromising workload reliability or user experience.
Further Reading & Links AWS Compute Optimizer Documentation Azure Advisor Overview AWS Burstable Performance Instances Azure B-Series VMs

Share