Skip to content

Commit a8a42a9

Browse files
Merge pull request #242054 from roygara/esanPerf
ESAN performance draft
2 parents 36e3fe1 + c491518 commit a8a42a9

File tree

5 files changed

+119
-0
lines changed

5 files changed

+119
-0
lines changed

articles/storage/elastic-san/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ items:
1414
href: elastic-san-planning.md
1515
- name: Scale targets
1616
href: elastic-san-scale-targets.md
17+
- name: Performance
18+
href: elastic-san-performance.md
1719
- name: How to
1820
items:
1921
- name: Deploy an Elastic SAN
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
---
2+
title: Azure Elastic SAN Preview and virtual machine performance
3+
description: Learn how your workload's performance is handled by Azure Elastic SAN and Azure Virtual Machines.
4+
author: roygara
5+
ms.service: azure-elastic-san-storage
6+
ms.topic: overview
7+
ms.date: 07/28/2023
8+
ms.author: rogarana
9+
---
10+
11+
# Elastic SAN Preview and virtual machine performance
12+
13+
This article clarifies how Elastic SAN performance works, and how the combination of Elastic SAN limits and Azure Virtual Machines (VM) limits can affect the performance of your workloads.
14+
15+
## How performance works
16+
17+
Azure VMs have input/output operations per second (IOPS) and throughput performance limits based on the [type and size of the VM](../../virtual-machines/sizes.md). An Elastic SAN has a pool of performance that it allocates to each of its volumes. Elastic SAN volumes can be attached to VMs and each volume has its own IOPS and throughput limits.
18+
19+
Your application's performance gets throttled when it requests more IOPS or throughput than what is allotted for the VM or attached volumes. When throttled, the application has suboptimal performance, and can experience negative consequences like increased latency. One of the main benefits of an Elastic SAN is its ability to provision IOPS automatically, based on demand. Your SAN's IOPS are shared amongst all its volumes, so when a workload peaks, it can be handled without throttling or extra cost. This article shows how this provisioning works.
20+
21+
### Elastic SAN performance
22+
23+
An Elastic SAN has three attributes that determine its performance: total capacity, IOPS, and throughput.
24+
25+
### Capacity
26+
27+
The total capacity of your Elastic SAN is determined by two different capacities, the base capacity and the additional capacity. Increasing the base capacity also increases the SAN's IOPS and throughput but is more costly than increasing the additional capacity. Increasing additional capacity doesn't increase IOPS or throughput.
28+
29+
### IOPS
30+
31+
The IOPS of an Elastic SAN increases by 5,000 per base TiB. So if you had an Elastic SAN that has 6 TiB of base capacity, that SAN could still provide up to 30,000 IOPS. That same SAN would still provide 30,000 IOPS whether it had 50 TiB of additional capacity or 500 TiB of additional capacity, since the SAN's performance is only determined by the base capacity. The IOPS of an Elastic SAN are distributed among all its volumes.
32+
33+
### Throughput
34+
35+
The throughput of an Elastic SAN increases by 80 MB/s per base TiB. So if you had an Elastic SAN that has 6 TiB of base capacity, that SAN could still provide up to 480 MB/s. That same SAN would provide 480-MB/s throughput whether it had 50 TiB of additional capacity or 500 TiB of additional capacity, since the SAN's performance is only determined by the base capacity. The throughput of an Elastic SAN is distributed among all its volumes.
36+
37+
### Elastic SAN volumes
38+
39+
The performance of an individual volume is determined by its capacity. The maximum IOPS of a volume increase by 750 per GiB, up to a maximum of 64,000 IOPS. The maximum throughput increases by 60 MB/s per GiB, up to a maximum of 1,024 MB/s. A volume needs at least 86 GiB to be capable of using 64,000 IOPS. A volume needs at least 18 GiB in order to be capable of using the maximum 1,024 MB/s. The combined IOPS and throughput of all your volumes can't exceed the IOPS and throughput of your SAN.
40+
41+
## Example configuration
42+
43+
Each of the example scenarios in this article uses the following configuration for the VMs and the Elastic SAN:
44+
45+
### VM limits
46+
47+
|VM |VM IOPS limit |
48+
|---------|---------|
49+
|Standard_DS2_v2 (AKS) |5,000 |
50+
|Standard_L48s_v2 (workload 1) |48,000 |
51+
|Standard_L32s_v3 (workload 2) |51,200 |
52+
|Standard_L48_v3 (workload 3) |76,800 |
53+
54+
### Elastic SAN limits
55+
56+
|Resource |Capacity |IOPS |
57+
|---------|---------|---------|
58+
|Elastic SAN |25 TiB |135,000 (provisioned) |
59+
|AKS SAN volume |3 TiB | Up to 64,000 |
60+
|Workload 1 SAN volume |10 TiB |Up to 64,000 |
61+
|Workload 2 SAN volume |4 TiB |Up to 64,000 |
62+
|Workload 3 SAN volume |2 TiB |Up to 64,000 |
63+
64+
65+
## Example scenarios
66+
67+
The following example scenarios depict how your Elastic SAN handles performance allocation.
68+
69+
### Typical workload
70+
71+
|Workload |Requested IOPS |Served IOPS |
72+
|---------|---------|---------|
73+
|AKS workload |3,000 |3,000 |
74+
|Workload 1 |10,000 |10,000 |
75+
|Workload 2 |8,000 |8,000 |
76+
|Workload 3 |20,000 |20,000 |
77+
78+
In this scenario, no throttling occurs at either the VM or SAN level. The SAN itself has 135,000 IOPS, each volume is large enough to serve up to 64,000 IOPS, enough IOPS are available from the SAN, none of the VM's IOPS limits have been surpassed, and the total IOPS requested is 41,000. So the workloads all execute without any throttling.
79+
80+
:::image type="content" source="media/elastic-san-performance/typical-workload.png" alt-text="Average scenario example diagram." lightbox="media/elastic-san-performance/typical-workload.png":::
81+
82+
### Single workload spike
83+
84+
85+
|Workload |Requested IOPS |Served IOPS |Spike time|
86+
|---------|---------|---------|---------|
87+
|AKS workload |2,000 |2,000 |N/A |
88+
|Workload 1 |10,000 |10,000 |N/A |
89+
|Workload 2 |10,000 |10,000 |N/A |
90+
|Workload 3 |64,000 |64,000 |9:00 am |
91+
92+
In this scenario, no throttling occurs. Workload 3 spiked at 9am, requesting 64,000 IOPS. None of the other workloads spiked and the SAN had enough free IOPS to distribute to the workload, so there was no throttling.
93+
94+
Generally, this is the ideal configuration for a SAN sharing workloads. It's best to have enough performance to handle the normal operations of workloads, and occasional peaks.
95+
96+
:::image type="content" source="media/elastic-san-performance/one-workload-spike.png" alt-text="Single workload spike example diagram." lightbox="media/elastic-san-performance/one-workload-spike.png":::
97+
98+
### All workloads spike
99+
100+
101+
|Workload |Requested IOPS |Served IOPS |Spike time |
102+
|---------|---------|---------|---------|
103+
|AKS workload |5,000 |5,000 |9:00 am |
104+
|Workload 1 |40,000 |19,000 |9:01 am |
105+
|Workload 2 |45,000 |45,000 |9:00 am |
106+
|Workload 3 |64,000 |64,000 |9:00 am |
107+
108+
109+
It's important to know the behavior of a SAN in the worst case scenario, where each workload peaks at the same time.
110+
111+
In this scenario, all the workloads hit their spike at almost the same time. At this point, the total IOPS required by all the workloads combined (64,000 + 45,000 + 40,000 + 5,000) is more than the IOPS provisioned at the SAN level (135,000). So the workloads are throttled. Throttling happens on a first-come, first-served basis, so whichever workloads request IOPS after the max capacity has been reached doesn't get more performance. In this case, workload 1 requested 40,000 IOPS after the other workloads, the SAN had already allocated most of its available IOPS, so only the remaining IOPS was provided.
112+
113+
:::image type="content" source="media/elastic-san-performance/all-workload-spike.png" alt-text="All workloads spiking example diagram." lightbox="media/elastic-san-performance/all-workload-spike.png":::
114+
115+
## Next steps
116+
117+
[Deploy an Elastic SAN (preview)](elastic-san-create.md).
170 KB
Loading
142 KB
Loading
112 KB
Loading

0 commit comments

Comments
 (0)