Skip to content

Commit 5a70979

Browse files
authored
Merge pull request #228191 from khdownie/kendownie022223
updating smb multichannel
2 parents e230588 + 51d09e5 commit 5a70979

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

articles/storage/files/storage-files-smb-multichannel-performance.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
---
22
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.
44
author: khdownie
55
ms.service: storage
66
ms.topic: conceptual
7-
ms.date: 08/25/2021
7+
ms.date: 02/22/2023
88
ms.author: kendownie
99
ms.subservice: files
1010
---
1111

1212
# 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.
1414

1515
## Applies to
1616
| File share type | SMB | NFS |
@@ -20,12 +20,12 @@ SMB Multichannel enables an SMB 3.x client to establish multiple network connect
2020
| Premium file shares (FileStorage), LRS/ZRS | ![Yes](../media/icons/yes-icon.png) | ![No](../media/icons/no-icon.png) |
2121

2222
## Benefits
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 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.
2424

2525
- **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.
2727
- **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.
2929
- **Network fault tolerance**:
3030
Multiple connections mitigate the risk of disruption since clients no longer rely on an individual connection.
3131
- **Automatic configuration**:
@@ -35,11 +35,11 @@ SMB Multichannel enables clients to use multiple network connections that provid
3535

3636
To learn more about SMB Multichannel, refer to the [Windows documentation](/azure-stack/hci/manage/manage-smb-multichannel).
3737

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.
3939

4040
## Limitations
4141
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.
4343
- Maximum number of channels is four, for details see [here](storage-troubleshooting-files-performance.md#cause-4-number-of-smb-channels-exceeds-four).
4444

4545
## Configuration
@@ -50,15 +50,15 @@ On Windows clients, SMB Multichannel is enabled by default. You can verify your
5050
```PowerShell
5151
Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel
5252
```
53-
54-
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).
5555

5656
### 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.
5858

5959
## Verify SMB Multichannel is configured correctly
6060

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.
6262
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.
6363
1. Mount a file share to your client.
6464
1. Generate load with your application.
@@ -71,18 +71,18 @@ In most scenarios, particularly multi-threaded workloads, clients should see imp
7171

7272
## Performance comparison
7373

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.
7575

7676
- **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.
7878
- **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.
8080
- **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.
8282

8383
### Performance test configuration
8484

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.
8686

8787
| 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) |
8888
|---|---|---|---|---|---|---|---|---|
@@ -103,7 +103,7 @@ Load was generated against 10 files with various IO sizes. The scale up test res
103103
- 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.
104104
- Spreading load over multiple files allowed for substantial improvements.
105105

106-
An example command that was used in this testing is:
106+
An example command used in this testing is:
107107

108108
`diskspd.exe -W300 -C5 -r -w100 -b4k -t8 -o8 -Sh -d60 -L -c2G -Z1G z:\write0.dat z:\write1.dat z:\write2.dat z:\write3.dat z:\write4.dat z:\write5.dat z:\write6.dat z:\write7.dat z:\write8.dat z:\write9.dat `.
109109

@@ -115,13 +115,13 @@ The load was generated against a single 128 GiB file. With SMB Multichannel enab
115115

116116
:::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":::
117117

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.
120120
- Performance is still bound by [single file limits](storage-files-scale-targets.md#file-scale-targets).
121121

122122
## Optimizing performance
123123

124-
The following tips may help you optimize your performance:
124+
The following tips might help you optimize performance:
125125

126126
- Ensure that your storage account and your client are colocated in the same Azure region to reduce network latency.
127127
- 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
139139

140140
## Next steps
141141
- [Enable SMB Multichannel](files-smb-protocol.md#smb-multichannel)
142-
- See the [Windows documentation](/azure-stack/hci/manage/manage-smb-multichannel) to learn more about SMB Multichannel.
142+
- See the [Windows documentation](/azure-stack/hci/manage/manage-smb-multichannel) for SMB Multichannel

0 commit comments

Comments
 (0)