Explanation
Why the waste happens and who it affects.
Standard (manual) throughput bills the RU/s you set every hour regardless of use. Autoscale lets the system scale between 10% and 100% of a maximum (Tmax) and bills the highest RU/s reached in each hour, but for single-write-region accounts the autoscale rate per RU/s is 1.5 times the manual rate. Choosing the wrong mode for a container's traffic shape overpays in either direction.
Containers with spiky, business-hours or batch traffic are often left on manual throughput sized for peak, paying peak RU/s through nights and weekends. The reverse also happens: busy containers that run near their maximum most hours are put on autoscale by default and pay the 1.5x rate for capacity they use continuously. Microsoft's rule of thumb is that autoscale saves money when the full maximum is used for 66% or fewer of the hours in a month, and manual saves money above that. Accounts with multiple write regions pay the same rate for both modes, so for them autoscale carries no premium.
Billing model
The pricing dimensions that drive this cost.
- Standard (manual) throughput
- Billed hourly for the RU/s provisioned at the manual rate, regardless of consumption
- Autoscale throughput
- Billed hourly for the highest RU/s scaled to in the hour, never less than 10% of Tmax
- Autoscale rate
- 1.5 times the manual rate per RU/s for single write region accounts; no premium for multi-region write accounts
- Dynamic scaling
- Autoscale per partition and per region, on by default for accounts created after September 25, 2024, which lowers autoscale bills for uneven workloads
How to detect
5 checks to find it in your estate.
- Review Azure Advisor for 'Enable autoscale on your Azure Cosmos DB database or container', which compares each hour's provisioned RU/s with the RU/s autoscale would have scaled to over the past 7 days
- Run the FinOps toolkit Azure Resource Graph query 'Cosmos DB collections that would benefit from switching to another throughput mode', which returns Advisor recommendations with recommendationTypeId cdf51428-a41b-4735-ba23-39f3b7cde20c and 6aa7a0df-192f-4dfa-bd61-f43db4843e7d
- For each container, chart Normalized RU Consumption with Max aggregation at 1-hour granularity over 7 to 30 days and average the hourly maxima: below 66% favors autoscale, above 66% favors manual
- For autoscale containers, compare Provisioned Throughput (RU/s billed each hour) with Autoscale Max Throughput; containers that sit near the maximum most hours are candidates for manual
- Check whether older accounts with autoscale containers have dynamic scaling enabled in the account's Features page
How to fix
5 ways to remove the waste.
- Switch variable or intermittent manual containers to autoscale from the portal, CLI or PowerShell, setting Tmax near observed peak; switching between modes is supported at any time
- Switch consistently busy single-write-region autoscale containers to manual throughput sized to steady demand, keeping headroom for spikes or accepting occasional 429 retries
- Use autoscale for containers in multi-region write accounts, since Microsoft recommends it there and it carries no extra charge
- Enable dynamic scaling on accounts created before September 25, 2024 so autoscale containers scale per partition and per region instead of following the hottest partition
- Re-evaluate the mode after major workload changes, and remember that reservations are consumed at a 1.5 multiplier by autoscale throughput in single write region accounts
Documentation
Vendor references for pricing and configuration.
- How to Choose Between Manual and Autoscale - Azure Cosmos DBlearn.microsoft.com
- Create Containers and Databases with Autoscale Throughput - Azure Cosmos DBlearn.microsoft.com
- FinOps best practices for Databaseslearn.microsoft.com
- Cost recommendations - Azure Advisorlearn.microsoft.com
- Azure Cosmos DB pricingazure.microsoft.com