Mejora del rendimiento de los recursos compartidos de archivos de Azure de SMB
Este artículo explica cómo puede mejorar el rendimiento de los recursos compartidos de archivos de Azure SMB premium, incluido el uso de SMB multicanal y el almacenamiento en caché de metadatos (versión preliminar).
Se aplica a
Tipo de recurso compartido de archivos | SMB | NFS |
---|---|---|
Recursos compartidos de archivos Estándar (GPv2), LRS/ZRS | ||
Recursos compartidos de archivos Estándar (GPv2), GRS/GZRS | ||
Recursos compartidos de archivos Premium (FileStorage), LRS/ZRS |
Optimización del rendimiento
Las siguientes sugerencias pueden ayudarte a optimizar el rendimiento:
- Asegúrese de que la cuenta de almacenamiento y el cliente se colocan en la misma región de Azure para reducir la latencia de red.
- Use aplicaciones multiproceso y distribuya la carga entre varios archivos.
- Las ventajas de rendimiento de SMB multicanal aumentan con el número de archivos que distribuyen la carga.
- El rendimiento del recurso compartido Premium está limitado por el tamaño del recurso compartido aprovisionado (IOPS/salida/entrada) y los límites de un solo archivo. Para obtener detalles, consulte Descripción del aprovisionamiento de recursos compartidos de archivos Premium.
- El rendimiento máximo de un solo cliente de VM sigue estando enlazado a los límites de máquina virtual. Por ejemplo, Standard_D32s_v3 puede admitir un ancho de banda máximo de 16 000 MBps (o 2 GBps), la salida de la máquina virtual (escrituras en el almacenamiento) se mide, la entrada (lecturas del almacenamiento) no. El rendimiento de los recursos compartidos de archivos está sujeto a los límites de red de la máquina, las CPU, el almacenamiento interno, el ancho de banda de red disponible, los tamaños de E/S, el paralelismo, así como otros factores.
- La prueba inicial suele ser una preparación. Descarte los resultados y repita la prueba.
- Si el rendimiento está limitado por un solo cliente y la carga de trabajo sigue estando por debajo de los límites de cuota provisionados, puede conseguir un mayor rendimiento repartiendo la carga entre varios clientes.
La relación entre IOPS, el rendimiento y los tamaños de E/S
Rendimiento = tamaño de E/S * IOPS
Cuanto mayor sea el tamaños de E/S mayores serán el rendimiento y las latencias, lo que dará lugar a un número menor de IOPS de red. Los tamaños de E/S menores aumentarán la IOPS, pero provocarán unas latencias y un rendimiento menores. Para más información, consulte Descripción del rendimiento de Azure Files.
SMB multicanal
SMB multicanal permite a un cliente SMB establecer varias conexiones de red a un recurso compartido de archivos SMB. Azure Files admite SMB multicanal en recursos compartidos de archivos Premium para clientes de Windows. En el lado del servicio, SMB multicanal ahora está habilitado de manera predeterminada para todas las cuentas de almacenamiento recién creadas en todas las regiones de Azure. No hay ningún costo adicional para habilitar SMB multicanal.
Ventajas
SMB multicanal permite a los clientes usar varias conexiones de red que proporcionan un mayor rendimiento a la vez que se reduce el costo de propiedad. El mayor rendimiento se logra a través de la agregación de ancho de banda en varias NIC y el uso de la compatibilidad con Ajuste de escala en lado de recepción (RSS) para que las NIC distribuyan la carga de E/S entre varias CPU.
- Rendimiento aumentado: varias conexiones permiten la transferencia de los datos a través de varias rutas de acceso en paralelo y, por tanto, benefician significativamente a las cargas de trabajo que usan tamaños de archivo más grandes con tamaños de E/S más grandes, y requieren un alto rendimiento de una sola máquina virtual o un conjunto de máquinas virtuales más pequeño. Entre algunas de estas cargas de trabajo se incluyen medios y entretenimiento para la creación de contenido o la transcodificación, la genómica y el análisis de riesgos de servicios financieros.
- E/S por segundo más alta: la funcionalidad RSS de NIC permite una distribución de carga eficaz entre varias CPU con varias conexiones. Esto ayuda a lograr una escala de IOPS más alta y un uso eficaz de las CPU de VM. Esto es útil para las cargas de trabajo que tienen tamaños de E/S pequeños, como las aplicaciones de base de datos.
- Tolerancia a los fallos de la red: varias conexiones mitigan el riesgo de interrupción, ya que los clientes ya no dependen de una conexión individual.
- Configuración automática: cuando SMB multicanal está habilitado en los clientes y las cuentas de almacenamiento, permite la detección dinámica de las conexiones existentes y puede crear rutas de acceso de conexión adicionales según sea necesario.
- Optimización de costos: las cargas de trabajo pueden alcanzar una mayor escala de una sola máquina virtual o un conjunto pequeño de máquinas virtuales mientras se conectan a recursos compartidos Premium. Esto podría reducir el costo total de propiedad al reducir el número de máquinas virtuales necesarias para ejecutar y administrar una carga de trabajo.
Para obtener más información sobre SMB multicanal, consulte la documentación de Windows.
Esta característica proporciona mayores ventajas de rendimiento a las aplicaciones multiproceso, pero normalmente no ayuda a las aplicaciones de un único subproceso. Consulte la sección Comparación del rendimiento para obtener más detalles.
Limitaciones
SMB multicanal para los recursos compartido de archivos de Azure tiene actualmente las siguientes restricciones:
- Solo está disponible para recursos compartidos de archivos premium de Azure. No está disponible para recursos compartidos de archivos de Azure estándar.
- Solo se admite en clientes de Windows que utilizan SMB 3.1.1. Asegúrese de que los sistemas operativos cliente de SMB tengan las revisiones aplicadas hasta los niveles recomendados.
- Actualmente no se admite ni se recomienda para los clientes de Linux.
- El número máximo de canales es cuatro. Para más información, consulte este artículo.
Configuración
SMB multicanal solo funciona cuando la característica está habilitada tanto en el lado del cliente (su cliente) como en el lado del servicio (su cuenta de almacenamiento de Azure).
En los clientes Windows, SMB multicanal está habilitado de manera predeterminada. Puede comprobar la configuración ejecutando el siguiente comando de PowerShell:
Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel
Si SMB multicanal no está habilitado en la cuenta de Almacenamiento de Azure, consulte estado multicanal de SMB.
Deshabilitar SMB multicanal
En la mayoría de los escenarios, concretamente las cargas de trabajo multiproceso, los clientes deben ver un rendimiento mejorado con SMB multicanal. Sin embargo, algunos escenarios específicos, como las cargas de trabajo con un único subproceso o con fines de prueba, es posible que desee deshabilitar el SMB multicanal. Consulte Comparación de rendimiento y Estado SMB multicanal para obtener más detalles.
Comprobar que SMB multicanal está configurado correctamente
- Crea un nuevo recurso compartido de archivos premium o use uno premium existente.
- Asegúrese de que el cliente admite SMB multicanal (uno o varios adaptadores de red tienen habilitado el ajuste de escala en lado de recepción). Consulte la documentación de Windows para obtener más detalles.
- Monte un recurso compartido de archivos en el cliente.
- Genere carga con la aplicación. Una herramienta de copia como robocopy o MT, o bien cualquier herramienta de rendimiento como Deskspd para archivos de lectura/escritura, pueden generar carga.
- Abra PowerShell como administrador y use el siguiente comando:
Get-SmbMultichannelConnection |fl
- Busque las propiedades MaxChannels y CurrentChannels.
Comparación del rendimiento
Hay dos categorías de patrones de carga de trabajo de lectura/escritura: de un único subproceso y multiproceso. La mayoría de las cargas de trabajo usan varios archivos, pero podría haber casos de uso específicos en los que la carga de trabajo funcione con un solo archivo en un recurso compartido. En esta sección se tratan diversos casos de uso y el impacto en el rendimiento de cada uno de ellos. En general, la mayoría de las cargas de trabajo son multiproceso y distribuyen la carga de trabajo por varios archivos, por lo que deberían poder observar mejoras significativas en el rendimiento con SMB multicanal.
- Varios archivos/Multiproceso: según el patrón de carga de trabajo, deberías poder observar una mejora significativa en el rendimiento en E/S de lectura y escritura a través de varios canales. Las mejoras de rendimiento varían desde cualquier punto entre 2x y 4x en términos de IOPS, rendimiento y latencia. En esta categoría, SMB multicanal debe habilitarse para obtener el mejor rendimiento.
- Un solo archivo/Multiproceso: en la mayoría de los casos de uso de esta categoría, las cargas de trabajo se beneficiarán de tener habilitado SMB multicanal, especialmente si la carga de trabajo tiene un tamaño medio de E/S > ~16 k. Algunos escenarios de ejemplo que se benefician de SMB multicanal son la copia de seguridad o la recuperación de un solo archivo grande. Una excepción en la que es posible que desees deshabilitar SMB multicanal es si tu carga de trabajo es pesada en E/S pequeñas. En ese caso, tal vez observes una ligera pérdida de rendimiento (10 %). Dependiendo del caso de uso, considere la posibilidad de distribuir la carga entre varios archivos o deshabilitar la característica. Consulte la sección Configuración para obtener más información.
- Varios archivos o un solo archivo/Multiproceso: en la mayoría de las cargas de trabajo de un único subproceso, existen unas ventajas de rendimiento mínimas debido a la falta de paralelismo. Por lo general, hay una ligera degradación del rendimiento de ~10 % si el SMB multicanal está habilitado. En este caso, es ideal deshabilitar SMB multicanal, con una excepción. Si la carga de trabajo de un único subproceso puede distribuir la carga entre varios archivos y usa un tamaño medio de E/S más grande (> ~16 k), deben existir unas ventajas de rendimiento mínimas del SMB multicanal.
Configuración de prueba de rendimiento
En los gráficos de este artículo, se usó la siguiente configuración: una sola máquina virtual D32s v3 Estándar con una sola NIC habilitada para RSS con cuatro canales. La carga se generó mediante diskspd.exe, multiproceso con una profundidad de E/S de 10 y E/S aleatorias con diversos tamaños de E/S.
Size | vCPU | Memoria: GiB | GiB de almacenamiento temporal (SSD) | Discos de datos máx. | Rendimiento máximo de almacenamiento en caché y temporal: IOPS/Mbps (tamaño de caché en GiB) | Rendimiento máximo del disco sin almacenamiento en la caché: IOPS/Mbps | Nº máx. NIC | Ancho de banda de red esperado (Mbps) |
---|---|---|---|---|---|---|---|---|
Standard_D32s_v3 | 32 | 128 | 256 | 32 | 64000/512 (800) | 51200/768 | 8 | 16000 |
Archivos multiproceso o varios archivos con SMB multicanal
La carga se realizó con respecto a 10 archivos con diversos tamaños de E/S. Los resultados de la prueba de escalado vertical mostraron mejoras significativas en los resultados de la prueba de rendimiento e IOPS con SMB multicanal habilitado. En los diagramas siguientes se describen los resultados:
- En una sola NIC, en el caso de las lecturas, el rendimiento aumentó entre el doble y el triple, mientras que en el caso de las escrituras, una mejora en términos de IOPS y rendimiento se multiplicó por 3 y hasta por 4.
- SMB multicanal permitió que IOPS y el rendimiento alcanzaran los límites de VM incluso con una sola NIC y el límite de cuatro canales.
- Dado que la salida (o las lecturas en el almacenamiento) no se mide, el rendimiento de lectura pudo superar el límite publicado de VM de 16 000 Mbps (2 GiB/s). La prueba alcanzó >2,7 GiB/s. La entrada (o las escrituras en el almacenamiento) sigue estando sujeta a límites de VM.
- Distribución de la carga por varios archivos permitidos para mejoras sustanciales.
Un comando de ejemplo utilizado en esta prueba es:
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
.
Cargas de trabajo multiproceso o de un solo archivo con SMB multicanal
La carga se realizó con respecto a un solo archivo de 128 GiB. Con SMB multicanal habilitado, la prueba de escalado vertical con archivos multiproceso o únicos mostró mejoras en la mayoría de los casos. En los diagramas siguientes se describen los resultados:
- En una sola NIC con un tamaño medio de E/S mayor (> ~16 k), había mejoras significativas tanto en las lecturas como en las escrituras.
- Para tamaños de E/S más pequeños, hubo un ligero impacto de ~10 % en el rendimiento con el SMB multicanal habilitado. Esto podría mitigarse mediante la distribución de la carga por varios archivos, o la deshabilitación de la característica.
- El rendimiento sigue estando sujeto a los límites de un solo archivo.
Almacenamiento en caché de metadatos para recursos compartidos de archivos SMB premium
El almacenamiento en caché de metadatos es una mejora para los recursos compartidos de archivos de Azure SMB premium destinados a mejorar lo siguiente:
- Reducción de la latencia de metadatos
- Límites de escala de metadatos elevados
- Aumentar la coherencia de la latencia, las IOPS disponibles y aumentar el rendimiento de la red
Esta característica en versión preliminar mejora las siguientes API de metadatos y se puede usar desde clientes Windows y Linux:
- Create
- Abrir
- Cerrar
- Eliminar
Actualmente, esta característica de versión preliminar solo está disponible para los recursos compartidos de archivos SMB premium (recursos compartidos de archivos en el tipo de cuenta de almacenamiento FileStorage). No hay ningún costo adicional asociado al uso de esta característica.
Registro para la característica
Para comenzar, regístrese para la característica mediante Azure Portal o Azure PowerShell.
- Inicie sesión en Azure Portal.
- Busque y seleccione Características en versión preliminar.
- Seleccione el filtro Tipo y seleccione Microsoft.Storage.
- Seleccione Azure Premium Files Metadata Cache Preview (Versión preliminar de caché de metadatos de Azure Premium Files) y a continuación, seleccione Registrar.
Importante
Permitir 1-2 días para que las cuentas se incorporen una vez completado el registro.
Disponibilidad regional
Actualmente, la versión preliminar del almacenamiento en caché de metadatos solo está disponible en las siguientes regiones de Azure. Para solicitar compatibilidad adicional con regiones, regístrese para obtener la versión preliminar pública.
- Este de Asia
- Centro de Australia
- Este de Australia
- Sudeste de Australia
- Sur de Brasil
- Centro de Canadá
- Este de Canadá
- Norte de Europa
- Centro de Francia
- Centro-oeste de Alemania
- Japón Oriental
- Japón Occidental
- JIO del Oeste de la India
- India central
- Sur de India
- India occidental
- Centro de Israel
- Norte de Italia
- Centro de Corea del Sur
- Corea del Sur
- Centro de México
- Este de Noruega
- Centro de Polonia
- Centro de Catar
- Centro de España
- Centro de Suecia
- Norte de Suiza
- Norte de Emiratos Árabes Unidos
- Oeste de Reino Unido
- Sur de Reino Unido 2
- Centro y norte de EE. UU.
- Centro y Sur de EE. UU.
- Centro-oeste de EE. UU.
- Oeste de EE. UU. 2
- Oeste de EE. UU. 3
Sugerencia
A medida que vayamos ampliando la compatibilidad regional con la característica de almacenamiento en caché de metadatos, las cuentas de almacenamiento de archivos premium de esas regiones se incorporarán automáticamente a todas las suscripciones registradas con la característica de almacenamiento en caché de metadatos.
Mejoras de rendimiento con el almacenamiento en caché de metadatos
La mayoría de las cargas de trabajo o los patrones de uso que contienen metadatos pueden beneficiarse del almacenamiento en caché de metadatos. Para determinar si su carga de trabajo contiene metadatos, puede usar Azure Monitor para dividir las transacciones por dimensión de API.
Las cargas de trabajo con grandes volúmenes de metadatos y los patrones de uso típicos incluyen:
- Servicios web o de aplicaciones
- Tareas de DevOps
- Indexación/trabajos por lotes
- Escritorios virtuales con directorios domésticos u otras cargas de trabajo que interactúan principalmente con muchos archivos pequeños, directorios o identificadores
En los diagramas siguientes se muestran los resultados potenciales.
Reducción de la latencia de metadatos
Al almacenar en caché rutas de acceso de archivos y directorios para búsquedas futuras, el almacenamiento en caché de metadatos puede reducir la latencia de los archivos y directorios a los que se accede con frecuencia un 30 % o más para cargas de trabajo con mucha carga de datos a escala.
Aumento de IOPS disponibles
El almacenamiento en caché de metadatos puede aumentar las IOPS disponibles en más del 60 % para cargas de trabajo con mucho metadatos a escala.
Aumento del rendimiento de la red
El almacenamiento en caché de metadatos puede aumentar el rendimiento de red en más del 60 % para cargas de trabajo con mucho metadatos a escala.
Pasos siguientes
- Comprobar el estado SMB multicanal
- Consulta la documentación de Windows para el SMB multicanal