Max Normalized RU Consumption for autoscale collections

Charlie LaMothe 26 Reputation points
2021-08-16T23:50:11.04+00:00

Given a non-partitioned autoscaling collection with max RU/s of 10,000,

If the Max Normalized RU Consumption of this collection for a time period is 100%, which of the following is true:
a) 100% of the maximum RU/s were used: 10,000 RU/s.
In this case, x% Max Normalized RU Consumption means x% * 10000.
5% = 500 RU/s
10% = 1000 RU/s
20% = 2000 RU/s
100% = 10000 RU/s

b) 100% of RU/s scaled up to were used: Somewhere between 1,000-10,000 RU/s.
In this case, 5% = 0.05 * r where 1000 >= r >= 10000.
The maximum RU/s a collection required cannot be determined from the the Max Normalized RU Consumption.

If (b) is true, is there any way to determine the maximum RU/s each collection actually requires? We don't want to pay for 10,000 RU/s autoscaling if we only need 1000 manual scaling. If (b) were true, then the 'Max Normalized RU Consumption' metric cannot be used to distinguish between the two.

Azure Cosmos DB
Azure Cosmos DB
An Azure NoSQL database service for app development.
1,543 questions
0 comments No comments
{count} vote

Accepted answer
  1. Anurag Sharma 17,591 Reputation points
    2021-08-17T08:28:14.07+00:00

    Hi @Charlie LaMothe , welcome to Microsoft Q&A forum.

    The maximum RUs required by collection can be determined based on usage through a period of time. As per below article "For production workloads, it's recommended to use 7 to 30 days of history (or longer if available) to establish a pattern of RU/s usage."

    How to choose between standard (manual) and autoscale provisioned throughput

    The same article aptly describes if we should manual or autoscale provisioned throughput. To summarize it we need to check the usage of RU consumption over a period of time. If the average utilization across this time period is less than 66% of the maximum throughput, autoscale is a better option. Otherwise we can choose the manual provisioned throughput. The same article describes in details by taking an example and comparing them against a window of 3 hours. I would request you to once check the article in entirety before taking the decision.

    Coming back to the query mentioned in the thread, if max Normalized RU Consumption of this collection for a time period is 100%(with autoscale Tmax as 10,000 RU/s), then maximum RUs used is 10,000 RUs and cost will be calculated based on it. Each hour, you will be billed for the highest throughput the system scaled to within the hour.

    If suppose for an hour the highest RU consumption is 5%, in that case the billing will be done based on minimum RUs which 10% of TMax, so 1,000 RUs in your case.

    Same article mentions 'How to calculate average utilization' and 'Measure and monitor your usage' which can help us in understanding the correct usage of our Azure Cosmos DB account and choosing the right option between manual and autoscale throughput.

    Please let me know if this helps or else we can discuss further.

    ----------

    If answer helps, you can mark it 'Accept Answer'

    0 comments No comments

0 additional answers

Sort by: Most helpful