You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/virtual-machine-scale-sets/spot-priority-mix.md
+88-24Lines changed: 88 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,36 +1,33 @@
1
1
---
2
2
title: Get high availability and cost savings with Spot Priority Mix for Virtual Machine Scale Sets
3
-
description: Learn how to run a mix of Spot VMs and uninterruptible regular VMs for Virtual Machine Scale Sets to achieve high availability and cost savings.
3
+
description: Learn how to run a mix of Spot VMs and uninterruptible standard VMs for Virtual Machine Scale Sets to achieve high availability and cost savings.
4
4
author: ju-shim
5
5
ms.author: jushiman
6
6
ms.service: virtual-machine-scale-sets
7
7
ms.subservice: spot
8
8
ms.workload: infrastructure-services
9
9
ms.topic: conceptual
10
-
ms.date: 11/22/2022
10
+
ms.date: 03/09/2023
11
11
ms.reviewer: cynthn
12
12
ms.custom: engagement-fy23
13
13
---
14
14
15
-
# Spot Priority Mix for high availability and cost savings (preview)
15
+
# Spot Priority Mix for high availability and cost savings
> **Spot Priority Mix** is currently in public preview.
21
-
> This preview version is provided without a service-level agreement, and we don't recommend it for production workloads. Certain features might not be supported or might have constrained capabilities.
22
-
> For more information, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
23
-
24
-
Azure allows you to have the flexibility of running a mix of uninterruptible regular VMs and interruptible Spot VMs for Virtual Machine Scale Set deployments. You're able to deploy this Spot Priority Mix using Flexible orchestration to easily balance between high-capacity availability and lower infrastructure costs according to your workload requirements. This feature allows you to easily manage your scale set capability to achieve the following:
19
+
Azure allows you to have the flexibility of running a mix of uninterruptible standard VMs and interruptible Spot VMs for Virtual Machine Scale Set deployments. You're able to deploy this Spot Priority Mix using Flexible orchestration to easily balance between high-capacity availability and lower infrastructure costs according to your workload requirements. This feature allows you to easily manage your scale set capability to achieve the following goals:
25
20
26
21
- Reduce compute infrastructure costs by applying the deep discounts of Spot VMs
27
-
- Maintain capacity availability through uninterruptible regular VMs in the scale set deployment
22
+
- Maintain capacity availability through uninterruptible standard VMs in the scale set deployment
28
23
- Provide reassurance that all your VMs won't be taken away simultaneously due to evictions before the infrastructure has time to react and recover the evicted capacity
29
-
- Simplify the scale-out and scale-in of compute workloads that require both Spot and regular VMs by letting Azure orchestrate the creation and deletion of VMs
24
+
- Simplify the scale-out and scale-in of compute workloads that require both Spot and standard VMs by letting Azure orchestrate the creation and deletion of VMs
25
+
26
+
## Configure your mix
30
27
31
-
You can configure a custom percentage distribution across Spot and regular VMs. The platform automatically orchestrates each scale-out and scale-in operation to achieve the desired distribution by selecting an appropriate number of VMs to create or delete. You can also optionally configure the number of base regular uninterruptible VMs you would like to maintain in the Virtual Machine Scale Set during any scale operation.
28
+
You can configure a custom percentage distribution across Spot and standard VMs. The platform automatically orchestrates each scale-out and scale-in operation to achieve the desired distribution by selecting an appropriate number of VMs to create or delete. You can also optionally configure the number of base standard VMs you would like to maintain in the Virtual Machine Scale Set during any scale operation.
32
29
33
-
## [Template](#tab/template-1)
30
+
###[Template](#tab/template-1)
34
31
35
32
You can set your Spot Priority Mix by using a template to add the following properties to a scale set with Flexible orchestration using a Spot priority VM profile:
36
33
@@ -42,28 +39,25 @@ You can set your Spot Priority Mix by using a template to add the following prop
42
39
```
43
40
44
41
**Parameters:**
45
-
-`baseRegularPriorityCount` – Specifies a base number of VMs that will be*Regular* priority; if the Scale Set capacity is at or below this number, all VMs will be*Regular* priority.
46
-
-`regularPriorityPercentageAboveBase` – Specifies the percentage split of *Regular* and *Spot* priority VMs that will be used when the Scale Set capacity is above the *baseRegularPriorityCount*.
42
+
-`baseRegularPriorityCount` – Specifies a base number of VMs that are standard,*Regular* priority; if the Scale Set capacity is at or below this number, all VMs are*Regular* priority.
43
+
-`regularPriorityPercentageAboveBase` – Specifies the percentage split of *Regular* and *Spot* priority VMs that are used when the Scale Set capacity is above the *baseRegularPriorityCount*.
47
44
48
45
You can refer to this [ARM template example](https://paste.microsoft.com/f84d2f83-f6bf-4d24-aa03-175b0c43da32) for more context.
49
46
50
-
## [Portal](#tab/portal-1)
47
+
###[Portal](#tab/portal-1)
51
48
52
-
You can set your Spot Priority Mix in the Scaling tab of the Virtual Machine Scale Sets creation process in the Azure portal. The following steps will instruct you on how to access this feature during that process.
49
+
You can set your Spot Priority Mix in the Scaling tab of the Virtual Machine Scale Sets creation process in the Azure portal. The following steps instruct you on how to access this feature during that process.
53
50
54
51
1. Log in to the [Azure portal](https://portal.azure.com).
55
52
1. In the search bar, search for and select **Virtual Machine Scale Sets**.
56
53
1. Select **Create** on the **Virtual Machine Scale Sets** page.
57
-
1. In the **Basics** tab, fill out the required fields and select **Flexible** as the **Orchestration** mode.
54
+
1. In the **Basics** tab, fill out the required fields, select **Flexible** as the **Orchestration** mode, and select the checkbox for **Run with Azure Spot discount**.
58
55
1. Fill out the **Disks** and **Networking** tabs.
59
-
1. In the **Scaling** tab, select the check-box next to *Scale with VMs and Spot VMs* option under the **Scale with VMs and discounted Spot VMs** section.
56
+
1. In the **Spot** tab, select the check-box next to *Scale with VMs and Spot VMs* option under the **Scale with VMs and discounted Spot VMs** section.
60
57
1. Fill out the **Base VM (uninterruptible) count** and **Instance distribution** fields to configure your priorities.
61
-
62
-
:::image type="content" source="./media/spot-priority-mix/scale-with-vms-and-discounted-spot-vms.png" alt-text="Screenshot of the Scale with VMs and discounted Spot VMs section in the Scaling tab within Azure portal.":::
63
-
64
58
1. Continue through the Virtual Machine Scale Set creation process.
65
59
66
-
## [Azure CLI](#tab/cli-1)
60
+
###[Azure CLI](#tab/cli-1)
67
61
68
62
You can set your Spot Priority Mix using Azure CLI by setting the `priority` flag to `Spot` and including the `regular-priority-count` and `regular-priority-percentage` flags.
69
63
@@ -81,7 +75,7 @@ az vmss create -n myScaleSet \
81
75
--single-placement-group False \
82
76
```
83
77
84
-
## [Azure PowerShell](#tab/powershell-1)
78
+
###[Azure PowerShell](#tab/powershell-1)
85
79
86
80
You can set your Spot Priority Mix using Azure PowerShell by setting the `Priority` flag to `Spot` and including the `BaseRegularPriorityCount` and `RegularPriorityPercentage` flags.
87
81
@@ -106,6 +100,76 @@ New-AzVmss `
106
100
107
101
---
108
102
103
+
## Examples
104
+
105
+
The following examples have scenario assumptions, a table of actions, and walk-through of results to help you understand how Spot Priority Mix configuration works.
106
+
107
+
Some important terminology to notice before referring to these examples:
108
+
-**sku.capacity** is the total number of VMs in the Virtual Machine Scale Set
109
+
-**Base (standard) VMs** are the number of standard non-Spot VMs, akin to a minimum VM number
110
+
111
+
### Scenario 1
112
+
113
+
The following scenario assumptions apply to this example:
114
+
-**sku.capacity** is variable, as the autoscaler will add or remove VMs from the scale set
115
+
-**Base (standard) VMs:** 10
116
+
-**Extra standard VMs:** 0
117
+
-**Spot priority VMs:** 0
118
+
-**regularPriorityPercentageAboveBase:** 50%
119
+
-**Eviction policy:** Delete
120
+
121
+
| Action | sku.capacity | Base (standard) VMs | Extra standard VMs | Spot priority VMs |
1. You start out with a Virtual Machine Scale Set with 10 VMs.
136
+
- The `sku.capacity` is variable and doesn't set a starting number of VMs. The Base VMs are set at 10, thus your total starting VMs are just 10 Base (standard) VMs.
137
+
1. You then scale-out 5 times, with 50% standard VMs and 50% Spot VMs.
138
+
- Note, because there's a 50/50 split, in the fourth scale-out, there's one more Spot VM than standard VM. Once it's scaled out again (5th scale-out), the 50/50 balance is restored with another standard VM.
139
+
1. You then scale in your scale set with the eviction policy being delete, which deletes all the Spot VMs.
140
+
1. With the scale-out operations mentioned in this scenario, you restore the 50/50 balance in your scale set by only creating Spot VMs.
141
+
1. By the last scale-out, your scale set is already balanced, so one of each type of VM is created.
142
+
143
+
### Scenario 2
144
+
145
+
The following scenario assumptions apply to this example:
146
+
-**sku.capacity** is variable, defined by autoscaler; starting with 20
147
+
-**Base (standard) VMs:** 10
148
+
-**Extra standard VMs:** 2
149
+
-**Spot priority VMs:** 8
150
+
-**regularPriorityPercentageAboveBase:** 25%
151
+
-**Eviction policy:** Deallocate
152
+
153
+
| Action | sku.capacity | Base (standard) VMs | Extra standard VMs | Spot priority VMs |
1. With the initial creation of the Virtual Machine Scale Set and Spot Priority Mix, you have 20 VMs.
163
+
- 10 of those VMs are the Base (standard) VMs, 2 extra standard VMs, and 8 Spot priority VMs for your 25% *regularPriorityPercentageAboveBase*.
164
+
- Another way to look at this ratio is you have 1 standard VM for every 4 Spot VMs in the scale set.
165
+
1. You then scale-out twice to create 90 more VMs; 23 standard VMs and 67 Spot VMs.
166
+
1. When you scale in by 10 VMs, 10 Spot VMs are *stop-deallocated*, creating an imbalance in your scale set.
167
+
1. Your next scale-out operation creates another 2 standard VMs and 8 Spot VMs, bringing you closer to your 25% above base ratio.
168
+
169
+
## Troubleshooting
170
+
171
+
If Spot Priority Mix is not available to you, be sure to configure the `priorityMixPolicy` to specify a *Spot* priority in the `virtualMachineProfile`. Without that configuration, you will not be able to access this Spot feature.
0 commit comments