Skip to content

Commit 4eb99e8

Browse files
committed
Merge branch 'scale-down' of https://github.com/shpathak-msft/azure-docs-pr into fxl---managed-redis-GA-preview
2 parents 6f4e006 + bcc398d commit 4eb99e8

File tree

2 files changed

+37
-22
lines changed

2 files changed

+37
-22
lines changed

articles/redis/architecture.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ Each SKU of Azure Managed Redis is configured to run a specific number of Redis
7676
| Tiers | Flash Optimized (preview) | Memory Optimized | Balanced | Compute Optimized |
7777
|:-----------:|:-------------------:|:--------------------:|:--------------------:|:--------------------:|
7878
| Size (GB) | vCPUs/primary shards | vCPUs/primary shards | vCPUs/primary shards | vCPUs/primary shards |
79-
| 0.5 | - | - | 2/2 | - |
80-
| 1 | - | - | 2/2 | - |
79+
| 0.5 | - | - | 2/1 | - |
80+
| 1 | - | - | 2/1 | - |
8181
| 3 | - | - | 2/2 | 4/2 |
8282
| 6 | - | - | 2/2 | 4/2 |
8383
| 12 | - | 2/2 | 4/2 | 8/6 |

articles/redis/how-to-scale.md

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Azure Managed Redis has different SKU and tier offerings that provide flexibilit
2727

2828
Azure Managed Redis supports scaling in two dimensions:
2929

30-
- **Memory** Increasing memory increases the size of the Redis instance, allowing you to store more data.
30+
- **Memory** Increasing memory increases the size of the Redis instance, allowing you to store more data. When reducing the memory, you need to ensure that your current memory usage is less than new memory size you want to use.
3131

3232
- **vCPUs** Azure Managed Redis offers three tiers (_Memory Optimized_, _Balanced_, and _Compute Optimized_) that have an increasing number of vCPUs for each level of memory. Scaling to a tier with more vCPUs increases the performance of your instance without requiring you to increase memory. Unlike the community edition of Redis, which can only utilize a single vCPU, Azure Managed Redis uses the Redis Enterprise stack, which is able to use multiple vCPUs. This means that the number of vCPUs used by your Redis instance directly correlates with throughput and latency performance.
3333

@@ -62,7 +62,7 @@ You can monitor the following metrics to determine if you need to scale.
6262
- **CPU**
6363
- High CPU usage means that the Redis server is unable to keep pace with requests from all the clients. Scaling up to more vCPUs helps distribute requests across multiple Redis processes. Scaling also helps distribute TLS encryption/decryption and connection/disconnection, speeding up cache instances using TLS.
6464
- **Memory Usage**
65-
- High memory usage indicates that your data size is too large for the current cache size. Consider scaling to a cache size with larger memory.
65+
- High memory usage indicates that your data size is too large for the current cache size. Consider scaling to a cache size with larger memory. When reducing the memory, you need to ensure that your current memory usage is less than new memory size you want to use.
6666
- **Client connections**
6767
- Each cache size has a limit to the number of client connections it can support. If your client connections are close to the limit for the cache size, consider scaling to a larger memory size or a higher performance tier.
6868
- For more information on connection limits by cache size, see [Performance testing with Azure Managed Redis](best-practices-performance.md).
@@ -77,37 +77,33 @@ For more information on determining the cache pricing tier to use, see [Choosing
7777
> For more information on how to optimize the scaling process, see the [best practices for scaling guide](best-practices-scale.md)
7878
>
7979
80-
## Prerequisites/limitations of scaling Azure Managed Redis
80+
## Limitations of scaling Azure Managed Redis
8181

8282
- You can't scale from the **Memory Optimized**, **Balanced**, or **Compute Optimized** tiers to the **Flash Optimized** tier, or vice-versa.
83-
- You can't scale down from to a SKU with fewer vCPUs. (Across tiers or within a tier.)
84-
- You can't scale down to a smaller memory size, even if it has the same or more vCPUs.
85-
- In some cases when scaling, the underlying IP address of the Redis instance can change. The DNS record for the instance changes and is transparent to most applications. However, if you use an IP address to configure the connection to your cache, or to configure NSGs, or firewalls allowing traffic to the cache, your application might have trouble connecting sometime after the DNS record updates.
83+
- When reducing the memory for your Redis instance, the current memory usage of your Redis instance should be less than the intended new memory size. See [this](#what-will-happen-to-my-data-if-i-scale-to-smaller-memory-size) for more details.
84+
- When reducing the memory or vCPU for your Redis instance, you can only scale to SKUs which have a vCPU and shard configuration that is compatible with the configuration on your current instance. See this [table](add link) for a guideline on which SKUs can you scale down your Redis instance to.
85+
- In some cases when scaling, the underlying IP address of the Redis instance can change. The DNS record for the instance changes and is transparent to most applications. However, if you use an IP address to configure the connection to your Redis instance, or to configure NSGs, or firewalls allowing traffic to the Redis instance, your application might have trouble connecting sometime after the DNS record updates.
8686
- Scaling an instance in a geo-replication group has some more limitations. See [Are there scaling limitations with geo-replication?](#are-there-scaling-limitations-with-geo-replication) for more information.
87-
88-
## How to scale
8987

90-
> [!TIP]
91-
> You can change both the memory size and performance tier in one operation.
92-
>
88+
## How to scale
9389

9490
### Scale using the Azure portal
9591

9692
1. To scale your cache, [browse to the cache](configure.md#configure-azure-managed-redis-settings) in the [Azure portal](https://portal.azure.com) and select **Scale** from the Resource menu.
9793

9894
:::image type="content" source="media/how-to-scale/managed-redis-enterprise-scale.png" alt-text="Screenshot showing Scale selected in the Resource menu for an Enterprise cache.":::
9995

100-
1. To scale up, choose a different **Cache type** and then choose **Save**.
96+
1. To scale your vCPUs, choose a different **Cache type** and then choose **Save**.
10197
> [!IMPORTANT]
102-
> If you select a SKU that cannot be scaled to, the **Save** option is disabled. Review the [Prerequisites/limitations of scaling Azure Managed Redis](#prerequisiteslimitations-of-scaling-azure-managed-redis) section for details on which scaling options are allowed.
98+
> If you select a SKU that cannot be scaled to, the **Save** option is disabled. Review the [Limitations of scaling Azure Managed Redis](#prerequisiteslimitations-of-scaling-azure-managed-redis) section for details on which scaling options are allowed.
10399
104100
:::image type="content" source="media/how-to-scale/managed-redis-enterprise-scale-up.png" alt-text="Screenshot showing the Enterprise tiers in the working pane.":::
105101

106102
1. While the cache is scaling to the new tier, a **Scaling Redis Cache** notification is displayed.
107103

108104
:::image type="content" source="media/how-to-scale/managed-redis-enterprise-notifications.png" alt-text="Screenshot showing notification of scaling an Enterprise cache.":::
109105

110-
1. When scaling is complete, the status changes from **Scaling** to **Running**.
106+
1. When scaling is complete, the status on the Overview blade changes from **Scaling** to **Running**.
111107

112108
### Scale using PowerShell
113109

@@ -130,6 +126,7 @@ az redisenterprise update --cluster-name "myCache" --resource-group "myGroup" --
130126
The following list contains answers to commonly asked questions about Azure Managed Redis scaling.
131127

132128
- [Can I scale within or across tiers?](#can-i-scale-within-or-across-tiers)
129+
- [What will happen to my data if I scale to smaller memory size?](#what-will-happen-to-my-data-if-i-scale-to-smaller-memory-size)
133130
- [After scaling, do I have to change my cache name or access keys?](#after-scaling-do-i-have-to-change-my-cache-name-or-access-keys)
134131
- [How does scaling work?](#how-does-scaling-work)
135132
- [Do I lose data from my cache during scaling?](#do-i-lose-data-from-my-cache-during-scaling)
@@ -145,7 +142,29 @@ The following list contains answers to commonly asked questions about Azure Mana
145142

146143
### Can I scale within or across tiers?
147144

148-
You can always scale to a higher performance tier at the same memory size or a larger memory size within the same performance tier. For scaling to a lower performance tier or smaller memory size, see the [Prerequisites/limitations of scaling Azure Managed Redis](#prerequisiteslimitations-of-scaling-azure-managed-redis).
145+
You can always scale to a higher performance tier at the same memory size or a larger memory size within the same performance tier. For scaling to a lower performance tier or smaller memory size, see the table below for SKUs that your cluster can scale to. Please note that this table is just a guidance and we recommend you run the "listskusforscaling" REST API to get the list of SKUs that you can scale to.
146+
147+
| **Size (GB)** | **Memory Optimized** | **Balanced** | **Compute Optimized** |
148+
|---------------|----------------------------------------------------------------------------------|--------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
149+
| **0.5** | - | - | - |
150+
| **1** | - | B0 | - |
151+
| **3** | | B1, B0 | B3, B1, B0 |
152+
| **6** | B5, B3, B1, B0<br>X5, X3 | M10<br>B5, B3, B1, B0<br>X5, X3 | M10<br>B10, B5, B3, B1, B0<br>X5, X3 |
153+
| **12** | M10<br>B10, B5, B3, B1, B0<br>X10, X5, X3 | M20, M10<br>B10, B5, B3, B1, B0<br>X10, X5, X3 | M20, M10<br>B20, B10, B5, B3, B1, B0<br>X10, X5, X3 |
154+
| **24** | M20, M10<br>B20, B10, B5, B3, B1, B0<br>X20, X10, X5, X3 | M50, M20, M10<br>B20, B10, B5, B3<br>X20, X10, X5, X3 | M50<br>B50, B20<br>X20, X10 |
155+
| **60** | M50, M20, M10<br>B50, B20, B10, B5, B3<br>X50, X20, X10, X5, X3 | M100, M50<br>B50, B20<br>X20, X10 | M100<br>B100, B50<br>X50, X20 |
156+
| **120** | M100, M50<br>B100, B50, B20<br>X100, X50, X20, X10 | M150, M100<br>B100, B50<br>X100, X50, X20 | M150<br>B150, B100<br>X100, X50 |
157+
| **180** | M150, M100, M50<br>B150, B100, B50, B20<br>X150, X100, X50, X20, X10 | M200, M150, M100<br>B150, B100, B50<br>X150, X100, X50, X20 | M200, M150<br>B200, B150, B100<br>X150, X100, X50 |
158+
| **240** | M200, M150, M100<br>B200, B150, B100, B50<br>X200, X150, X100, X50, X20 | M350, M200, M150, M100<br>B200, B150, B100<br>X200, X150, X100, X50 | M350<br>B350, B200, B150<br>X200, X150, X100 |
159+
| **360** | M350, M200, M150, M100<br>B350, B200, B150, B100, B50<br>X350, X200, X150, X100 | M500, M350, M200, M150<br>B350, B200, B150, B100<br>X350, X200, X150, X100, X50 | M500, M350<br>B350, B200, B150<br>X350, X200, X150, X100 |
160+
| **480** | M500, M350, M200, M150<br>B500, B350, B200, B150, B100<br>X500, X350, X200, X150, X100, X50 | M700, M500, M350<br>B500, B350, B200, B150<br>X350, X200, X150, X100 | M700, M500, M350<br>B350, B200, B150<br>X500, X350, X200, X150, X100 |
161+
| **720** | M700, M500, M350, M200, M150<br>B700, B500, B350, B200, B150, B100<br>X700, X500, X350, X200, X150, X100, X50 | M1000, M700, M500, M350<br>B1000, B700, B500, B350, B200, B150<br>X700, X500, X350, X200, X150, X100 | |
162+
| **960** | M1000, M700, M500, M350<br>B1000, B700, B500, B350, B200, B150<br>X700, X500, X350, X200, X150, X100 | - | |-
163+
| **1440** | M1000, M700, M500, M350<br>B1000, B700, B500, B350, B200, B150<br>X700, X500, X350, X200, X150, X100 | - | - |
164+
165+
### What will happen to my data if I scale to smaller memory size?
166+
167+
You can scale to a smaller memory size only if the current memory usage is less than the intended smaller memory size. If the current memory usage is higher than the intended smaller size, your scaling request will fail. You can reduce the current memory usage by deleted unwanted key value pairs or by running the flush operation. (Add link)
149168

150169
### After scaling, do I have to change my cache name or access keys?
151170

@@ -161,7 +180,7 @@ For more information on how Azure Managed Redis handles sharding, see [Sharding
161180
### Do I lose data from my cache during scaling?
162181

163182
- If high availability mode is enabled, all data should be preserved during scaling operations.
164-
- If you're scaling down to a smaller memory level, data can be lost if the data size exceeds the new smaller size when the cache is scaled down. If data is lost when scaling down, keys are evicted using the [allkeys-lru](https://redis.io/topics/lru-cache) eviction policy.
183+
- If you're scaling to a smaller memory level, you need to ensure that the current memory usage is lower than the intended new memory size. If the current memory usage is more than the intended SKU memory size, you can flush your data using Flush operation (add link) or choose key values to delete manually.
165184
- If high availability mode is disabled, all data is lost and the cache is unavailable during the scaling operation.
166185

167186
### Will my cache be available during scaling?
@@ -210,10 +229,6 @@ For more information, see [Keys distribution model](https://redis.io/topics/clus
210229

211230
The largest cache size you can have is 4.5 TB, called Flash Optimized A4500 instance. [Azure Cache for Redis Pricing](https://azure.microsoft.com/pricing/details/cache/).
212231

213-
### What is the difference between the OSS and Enterprise cluster policies?
214-
215-
OSS cluster policy is the same as clustering approach used in community edition Redis. Typically OSS cluster policy is more performant. Enterprise cluster policy implements clustering so that it appears to a client as a nonclustered Redis instance. This approach can be less performant, but can prevent client compatibility issues. It isn't currently possible to switch between cluster policies on a running instance. For more information, see [Cluster policy](architecture.md#cluster-policies).
216-
217232
## Next steps
218233

219234
- [Best practices for scaling](best-practices-scale.md)

0 commit comments

Comments
 (0)