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/storage-files-smb-multichannel-performance.md
+22-22Lines changed: 22 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,16 @@
1
1
---
2
2
title: SMB Multichannel performance - Azure Files
3
-
description: Learn about SMB Multichannel performance.
3
+
description: Learn how SMB Multichannel can improve performance for Azure file shares.
4
4
author: khdownie
5
5
ms.service: storage
6
6
ms.topic: conceptual
7
-
ms.date: 08/25/2021
7
+
ms.date: 02/22/2023
8
8
ms.author: kendownie
9
9
ms.subservice: files
10
10
---
11
11
12
12
# SMB Multichannel performance
13
-
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). There is no additional cost for enabling SMB Multichannel in Azure Files. SMB Multichannel is disabled by default.
13
+
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). On the service side, SMB Multichannel is disabled by default in Azure Files, but there's no additional cost for enabling it.
14
14
15
15
## Applies to
16
16
| File share type | SMB | NFS |
@@ -20,12 +20,12 @@ SMB Multichannel enables an SMB 3.x client to establish multiple network connect
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 IO load across multiple CPUs.
23
+
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.
24
24
25
25
-**Increased throughput**:
26
-
Multiple connections allow data to be transferred over multiple paths in parallel and thereby significantly benefits workloads that use larger file sizes with larger IO sizes, and require high throughput from a single VM or a smaller set of VMs. Some of these workloads include media and entertainment for content creation or transcoding, genomics, and financial services risk analysis.
26
+
Multiple connections allow data to be transferred over multiple paths in parallel and thereby significantly benefits workloads that use larger file sizes with larger I/O sizes, and require high throughput from a single VM or a smaller set of VMs. Some of these workloads include media and entertainment for content creation or transcoding, genomics, and financial services risk analysis.
27
27
-**Higher IOPS**:
28
-
NIC RSS capability allows effective load distribution across multiple CPUs with multiple connections. This helps achieve higher IOPS scale and effective utilization of VM CPUs. This is useful for workloads that have small IO sizes, such as database applications.
28
+
NIC RSS capability allows effective load distribution across multiple CPUs with multiple connections. This helps achieve higher IOPS scale and effective utilization of VM CPUs. This is useful for workloads that have small I/O sizes, such as database applications.
29
29
-**Network fault tolerance**:
30
30
Multiple connections mitigate the risk of disruption since clients no longer rely on an individual connection.
31
31
-**Automatic configuration**:
@@ -35,11 +35,11 @@ SMB Multichannel enables clients to use multiple network connections that provid
35
35
36
36
To learn more about SMB Multichannel, refer to the [Windows documentation](/azure-stack/hci/manage/manage-smb-multichannel).
37
37
38
-
This feature provides greater performance benefits to multi-threaded applications but typically does not help single-threaded applications. See the [Performance comparison](#performance-comparison) section for more details.
38
+
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.
39
39
40
40
## Limitations
41
41
SMB Multichannel for Azure file shares currently has the following restrictions:
42
-
- Only supported on [Windows](storage-how-to-use-files-windows.md) and [Linux](storage-how-to-use-files-linux.md) clients that are using SMB 3.1.1. Ensure SMB client operating systems are patched to recommended levels.
42
+
- Only supported on Windows clients that are using SMB 3.1.1. Ensure SMB client operating systems are patched to recommended levels.
43
43
- Maximum number of channels is four, for details see [here](storage-troubleshooting-files-performance.md#cause-4-number-of-smb-channels-exceeds-four).
44
44
45
45
## Configuration
@@ -50,15 +50,15 @@ On Windows clients, SMB Multichannel is enabled by default. You can verify your
On your Azure storage account, you will need to enable SMB Multichannel. See [Enable SMB Multichannel](files-smb-protocol.md#smb-multichannel).
53
+
54
+
On your Azure storage account, you'll need to enable SMB Multichannel. See [Enable SMB Multichannel](files-smb-protocol.md#smb-multichannel).
55
55
56
56
### Disable SMB Multichannel
57
-
In most scenarios, particularly multi-threaded workloads, clients should see improved performance with SMB Multichannel. However, some specific scenarios such as single-threaded workloads or for testing purposes, you may want to disable SMB Multichannel. See [Performance comparison](#performance-comparison) for more details.
57
+
In most scenarios, particularly multi-threaded workloads, clients should see improved performance with SMB Multichannel. However, 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.
58
58
59
59
## Verify SMB Multichannel is configured correctly
60
60
61
-
1. Create a premium file share or use an existing one.
61
+
1. Create a new premium file share or use an existing premium share.
62
62
1. Ensure your client supports SMB Multichannel (one or more network adapters has receive-side scaling enabled). Refer to the [Windows documentation](/azure-stack/hci/manage/manage-smb-multichannel) for more details.
63
63
1. Mount a file share to your client.
64
64
1. Generate load with your application.
@@ -71,18 +71,18 @@ In most scenarios, particularly multi-threaded workloads, clients should see imp
71
71
72
72
## Performance comparison
73
73
74
-
There are two categories of read/write workload patterns - single-threaded and multi-threaded. Most workloads use multiple files, but there could be specific use cases where the workload works with a single file in a share. This section covers different use cases and the performance impact for each of them. In general, most workloads are multi-threaded and distribute workload over multiple files so they should observe significant performance improvements with SMB Multichannel.
74
+
There are two categories of read/write workload patterns: single-threaded and multi-threaded. Most workloads use multiple files, but there could be specific use cases where the workload works with a single file in a share. This section covers different use cases and the performance impact for each of them. In general, most workloads are multi-threaded and distribute workload over multiple files so they should observe significant performance improvements with SMB Multichannel.
75
75
76
76
-**Multi-threaded/multiple files**:
77
-
Depending on the workload pattern, you should see significant performance improvement in read and write IOs over multiple channels. The performance gains vary from anywhere between 2x to 4x in terms of IOPS, throughput, and latency. For this category, SMB Multichannel should be enabled for the best performance.
77
+
Depending on the workload pattern, you should see significant performance improvement in read and write I/Os over multiple channels. The performance gains vary from anywhere between 2x to 4x in terms of IOPS, throughput, and latency. For this category, SMB Multichannel should be enabled for the best performance.
78
78
-**Multi-threaded/single file**:
79
-
For most use cases in this category, workloads will benefit from having SMB Multichannel enabled, especially if the workload has an average IO size > ~16k. A few example scenarios that benefit from SMB Multichannel are backup or recovery of a single large file. An exception where you may want to disable SMB Multichannel is if your workload is small IOs heavy. In that case, you may observe a slight performance loss of ~10%. Depending on the use case, consider spreading load across multiple files, or disable the feature. See the [Configuration](#configuration) section for details.
79
+
For most use cases in this category, workloads will benefit from having SMB Multichannel enabled, especially if the workload has an average I/O size > ~16k. A few example scenarios that benefit from SMB Multichannel are backup or recovery of a single large file. An exception where you might want to disable SMB Multichannel is if your workload is heavy on small I/Os. In that case, you might observe a slight performance loss of ~10%. Depending on the use case, consider spreading load across multiple files, or disable the feature. See the [Configuration](#configuration) section for details.
80
80
-**Single-threaded/multiple files or single file**:
81
-
For most single-threaded workloads, there are minimum performance benefits due to lack of parallelism, usually there is a slight performance degradation of ~10% if SMB Multichannel is enabled. In this case, it's ideal to disable SMB Multichannel, with one exception. If the single-threaded workload can distribute load across multiple files and uses on an average larger IO size (> ~16k), then there should be slight performance benefits from SMB Multichannel.
81
+
For most single-threaded workloads, there are minimum performance benefits due to lack of parallelism. Usually there is a slight performance degradation of ~10% if SMB Multichannel is enabled. In this case, it's ideal to disable SMB Multichannel, with one exception. If the single-threaded workload can distribute load across multiple files and uses on an average larger I/O size (> ~16k), then there should be slight performance benefits from SMB Multichannel.
82
82
83
83
### Performance test configuration
84
84
85
-
For the charts in this article, the following configuration was used: A single Standard D32s v3 VM with a single RSS enabled NIC with four channels. Load was generated using diskspd.exe, multiple-threaded with IO depth of 10, and random IOs with various IO sizes.
85
+
For the charts in this article, the following configuration was used: A single Standard D32s v3 VM with a single RSS enabled NIC with four channels. Load was generated using diskspd.exe, multiple-threaded with IO depth of 10, and random I/Os with various I/O sizes.
86
86
87
87
| Size | vCPU | Memory: GiB | Temp storage (SSD) GiB | Max data disks | Max cached and temp storage throughput: IOPS/MBps (cache size in GiB) | Max uncached disk throughput: IOPS/MBps | Max NICs|Expected network bandwidth (Mbps) |
88
88
|---|---|---|---|---|---|---|---|---|
@@ -103,7 +103,7 @@ Load was generated against 10 files with various IO sizes. The scale up test res
103
103
- Since egress (or reads to storage) is not metered, read throughput was able to exceed the VM published limit of 16,000 Mbps (2 GiB/s). The test achieved >2.7 GiB/s. Ingress (or writes to storage) are still subject to VM limits.
104
104
- Spreading load over multiple files allowed for substantial improvements.
105
105
106
-
An example command that was used in this testing is:
@@ -115,13 +115,13 @@ The load was generated against a single 128 GiB file. With SMB Multichannel enab
115
115
116
116
:::image type="content" source="media/storage-files-smb-multichannel-performance/diagram-smb-multi-channel-single-file-compared-to-single-channel-throughput-performance.png" alt-text="Diagram of single file throughput performance." lightbox="media/storage-files-smb-multichannel-performance/diagram-smb-multi-channel-single-file-compared-to-single-channel-throughput-performance.png":::
117
117
118
-
- On a single NIC with larger average IO size (> ~16k), there were significant improvements in both reads and writes.
119
-
- For smaller IO sizes, there was a slight impact of ~10% on performance when SMB Multichannel was enabled. This could be mitigated by spreading the load over multiple files, or disabling the feature.
118
+
- On a single NIC with larger average I/O size (> ~16k), there were significant improvements in both reads and writes.
119
+
- 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.
120
120
- Performance is still bound by [single file limits](storage-files-scale-targets.md#file-scale-targets).
121
121
122
122
## Optimizing performance
123
123
124
-
The following tips may help you optimize your performance:
124
+
The following tips might help you optimize performance:
125
125
126
126
- Ensure that your storage account and your client are colocated in the same Azure region to reduce network latency.
127
127
- Use multi-threaded applications and spread load across multiple files.
@@ -139,4 +139,4 @@ Higher I/O sizes drive higher throughput and will have higher latencies, resulti
0 commit comments