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/storage/files/smb-performance.md
+68-6Lines changed: 68 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,17 +1,20 @@
1
1
---
2
2
title: SMB performance - Azure Files
3
-
description: Learn about different ways to improve performance for SMB Azure file shares, including SMB Multichannel.
3
+
description: Learn about different ways to improve performance for premium SMB Azure file shares, including SMB Multichannel and metadata caching.
4
4
author: khdownie
5
5
ms.service: azure-file-storage
6
6
ms.topic: conceptual
7
-
ms.date: 08/31/2023
7
+
ms.date: 01/26/2024
8
8
ms.author: kendownie
9
+
ms.custom: references_regions
9
10
---
10
11
11
12
# Improve SMB Azure file share performance
12
-
This article explains how you can improve performance for SMB Azure file shares, including using SMB Multichannel.
13
+
14
+
This article explains how you can improve performance for premium SMB Azure file shares, including using SMB Multichannel and metadata caching.
13
15
14
16
## Applies to
17
+
15
18
| File share type | SMB | NFS |
16
19
|-|:-:|:-:|
17
20
| Standard file shares (GPv2), LRS/ZRS |||
@@ -22,7 +25,7 @@ This article explains how you can improve performance for SMB Azure file shares,
22
25
23
26
The following tips might help you optimize performance:
24
27
25
-
- Ensure that your storage account and your client are colocated in the same Azure region to reduce network latency.
28
+
- Ensure that your storage account and your client are co-located in the same Azure region to reduce network latency.
26
29
- Use multi-threaded applications and spread load across multiple files.
27
30
- Performance benefits of SMB Multichannel increase with the number of files distributing load.
28
31
- Premium share performance is bound by provisioned share size (IOPS/egress/ingress) and single file limits. For details, see [Understanding provisioning for premium file shares](understanding-billing.md#provisioned-model).
@@ -37,9 +40,11 @@ The following tips might help you optimize performance:
37
40
Higher I/O sizes drive higher throughput and will have higher latencies, resulting in a lower number of net IOPS. Smaller I/O sizes will drive higher IOPS, but will result in lower net throughput and latencies. To learn more, see [Understand Azure Files performance](understand-performance.md).
38
41
39
42
## SMB Multichannel
43
+
40
44
SMB Multichannel enables an SMB 3.x client to establish multiple network connections to an SMB file share. Azure Files supports SMB Multichannel on premium file shares (file shares in the FileStorage storage account kind) for Windows clients. On the service side, SMB Multichannel is disabled by default in Azure Files, but there's no additional cost for enabling it.
41
45
42
46
### Benefits
47
+
43
48
SMB Multichannel enables clients to use multiple network connections that provide increased performance while lowering the cost of ownership. Increased performance is achieved through bandwidth aggregation over multiple NICs and utilizing Receive Side Scaling (RSS) support for NICs to distribute the I/O load across multiple CPUs.
44
49
45
50
-**Increased throughput**:
@@ -58,15 +63,18 @@ To learn more about SMB Multichannel, refer to the [Windows documentation](/azur
58
63
This feature provides greater performance benefits to multi-threaded applications but typically doesn't help single-threaded applications. See the [Performance comparison](#performance-comparison) section for more details.
59
64
60
65
### Limitations
66
+
61
67
SMB Multichannel for Azure file shares currently has the following restrictions:
68
+
62
69
- Only supported on Windows clients that are using SMB 3.1.1. Ensure SMB client operating systems are patched to recommended levels.
63
70
- Not currently supported or recommended for Linux clients.
64
71
- Maximum number of channels is four, for details see [here](/troubleshoot/azure/azure-storage/files-troubleshoot-performance?toc=/azure/storage/files/toc.json#cause-4-number-of-smb-channels-exceeds-four).
65
72
66
73
### Configuration
74
+
67
75
SMB Multichannel only works when the feature is enabled on both client-side (your client) and service-side (your Azure storage account).
68
76
69
-
On Windows clients, SMB Multichannel is enabled by default. You can verify your configuration by running the following PowerShell command:
77
+
On Windows clients, SMB Multichannel is enabled by default. You can verify your configuration by running the following PowerShell command:
On your Azure storage account, you'll need to enable SMB Multichannel. See [Enable SMB Multichannel](files-smb-protocol.md#smb-multichannel).
76
84
77
85
### Disable SMB Multichannel
86
+
78
87
In most scenarios, particularly multi-threaded workloads, clients should see improved performance with SMB Multichannel. However, for some specific scenarios such as single-threaded workloads or for testing purposes, you might want to disable SMB Multichannel. See [Performance comparison](#performance-comparison) for more details.
79
88
80
89
### Verify SMB Multichannel is configured correctly
@@ -84,7 +93,7 @@ In most scenarios, particularly multi-threaded workloads, clients should see imp
84
93
1. Mount a file share to your client.
85
94
1. Generate load with your application.
86
95
A copy tool such as robocopy /MT, or any performance tool such as Diskspd to read/write files can generate load.
87
-
1. Open PowerShell as an admin and use the following command:
96
+
1. Open PowerShell as an admin and use the following command:
88
97
`Get-SmbMultichannelConnection |fl`
89
98
1. Look for **MaxChannels** and **CurrentChannels** properties.
90
99
@@ -140,6 +149,59 @@ The load was generated against a single 128 GiB file. With SMB Multichannel enab
140
149
- For smaller I/O sizes, there was a slight impact of ~10% on performance with SMB Multichannel enabled. This could be mitigated by spreading the load over multiple files, or disabling the feature.
141
150
- Performance is still bound by [single file limits](storage-files-scale-targets.md#file-scale-targets).
142
151
152
+
## Metadata caching for premium SMB file shares (preview)
153
+
154
+
Metadata caching introduces a layer of cache to the Azure Files service to reduce metadata latency, increase available IOPS, and boost network throughput. This feature improves the following metadata APIs and can be used from both Windows and Linux clients:
155
+
156
+
- Create
157
+
- Open
158
+
- Close
159
+
- Delete
160
+
161
+
To onboard, [sign up for the limited public preview](https://aka.ms/PremiumFilesMetadataCachingPreview) and we'll provide you with additional details. Currently this preview feature is only available for premium SMB file shares (file shares in the FileStorage storage account kind). There are no additional costs associated with using this feature.
162
+
163
+
### Regional availability
164
+
165
+
Currently the metadata caching preview is only available in the following Azure regions.
166
+
167
+
- Australia East
168
+
- Germany West Central
169
+
- Switzerland North
170
+
- UAE North
171
+
- US West Central
172
+
173
+
### Performance improvements with metadata caching
174
+
175
+
Most workloads or usage patterns that contain metadata can benefit from metadata caching. To determine if your workload contains metadata, you can [use Azure Monitor](analyze-files-metrics.md#monitor-utilization) to split the transactions by API dimension.
176
+
177
+
Typical metadata-heavy workloads and usage patterns include:
178
+
179
+
- Web/app services
180
+
- DevOps tasks
181
+
- Indexing/batch jobs
182
+
- Virtual desktops with home directories or other workloads that are primarily interacting with many small files, directories, or handles
183
+
184
+
The following diagrams depict potential results.
185
+
186
+
#### Reduce metadata latency
187
+
188
+
By caching file and directory paths for future lookups, metadata caching can reduce latency on frequently accessed files and directories by 30% or more for metadata-heavy workloads at scale.
189
+
190
+
:::image type="content" source="media/smb-performance/metadata-caching-latency.jpg" alt-text="Chart showing latency in milliseconds with and without metadata caching." border="false":::
191
+
192
+
#### Increase available IOPS
193
+
194
+
Metadata caching can increase available IOPS by more than 60% for metadata-heavy workloads at scale.
195
+
196
+
:::image type="content" source="media/smb-performance/metadata-caching-iops.jpg" alt-text="Chart showing available IOPS with and without metadata caching." border="false":::
197
+
198
+
#### Increase network throughput
199
+
200
+
Metadata caching can increase network throughput by more than 60% for metadata-heavy workloads at scale.
201
+
202
+
:::image type="content" source="media/smb-performance/metadata-caching-throughput.jpg" alt-text="Chart showing network throughput with and without metadata caching." border="false":::
0 commit comments