Compartir a través de


Elección de un adaptador de red

Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016; Azure Stack HCI, versiones 21H2 y 20H2

Puede usar este tema para aprender algunas de las características de los adaptadores de red que podrían afectar a las opciones de compra.

Las aplicaciones que consumen muchos recursos de red requieren adaptadores de red de alto rendimiento. En esta sección se exploran algunas consideraciones para elegir adaptadores de red, así como cómo configurar diferentes opciones de adaptador de red para lograr el mejor rendimiento de red.

Sugerencia

Puede configurar las opciones de adaptador de red mediante Windows PowerShell. Para más información, consulte Cmdlets del adaptador de red en Windows PowerShell.

Funcionalidades de descarga

La descarga de tareas de la unidad central de procesamiento (CPU) al adaptador de red puede reducir el uso de CPU en el servidor, lo que mejora el rendimiento general del sistema.

La pila de red de los productos de Microsoft puede descargar una o varias tareas en un adaptador de red si se selecciona un adaptador de red que tenga las funcionalidades de descarga adecuadas. En la tabla siguiente se proporciona una breve introducción a las distintas funcionalidades de descarga disponibles en Windows Server 2016.

Tipo de descarga Descripción
Cálculo de la suma de comprobación para TCP La pila de red puede descargar el cálculo y la validación de las sumas de comprobación del Protocolo de control de transmisión (TCP) en rutas de acceso de código de envío y recepción. También puede descargar el cálculo y la validación de sumas de comprobación de IPv4 e IPv6 en rutas de acceso de código de envío y recepción.
Cálculo de la suma de comprobación para UDP La pila de red puede descargar el cálculo y la validación de las sumas de comprobación del Protocolo de datagramas de usuario (UDP) en rutas de acceso de código de envío y recepción.
Cálculo de la suma de comprobación para IPv4 La pila de red puede descargar el cálculo y la validación de sumas de comprobación de IPv4 en rutas de acceso de código de envío y recepción.
Cálculo de la suma de comprobación para IPv6 La pila de red puede descargar el cálculo y la validación de las sumas de comprobación de IPv6 en rutas de acceso de código de envío y recepción.
Segmentación de paquetes TCP grandes La capa de transporte TCP/IP admite la descarga de envío grande v2 (LSOv2). Con LSOv2, la capa de transporte TCP/IP puede descargar la segmentación de paquetes TCP grandes al adaptador de red.
Receive Side Scaling (RSS) RSS es una tecnología de controlador de red que permite la distribución eficiente del procesamiento de recepción de red en varias CPU en sistemas multiprocesador. Se proporcionan más detalles sobre RSS más adelante en este tema.
Receive Segment Coalescing (RSC) RSC es la capacidad de agrupar paquetes para minimizar el procesamiento de encabezados que necesario que realice el host. Se puede fusionar un máximo de 64 KB de carga recibida en un único paquete más grande para su procesamiento. Se proporcionan más detalles sobre RSC más adelante en este tema.

Escalado del lado de recepción

Windows Server 2016, Windows Server 2012, Windows Server 2012 R2, Windows Server 2008 R2 y Windows Server 2008 admiten Escalado en el lado de recepción (RSS).

Algunos servidores se configuran con varios procesadores lógicos que comparten recursos de hardware (como un núcleo físico) y que se tratan como pares de Multithreading simultáneo (SMT). Intel Hyper-Threading Technology es un ejemplo. RSS dirige el procesamiento de red hasta a un procesador lógico por núcleo. Por ejemplo, en un servidor con Intel Hyper-Threading, 4 núcleos y 8 procesadores lógicos, RSS no usa más de 4 procesadores lógicos para el procesamiento de red.

RSS distribuye paquetes de E/S de red entrantes entre procesadores lógicos para que los paquetes que pertenecen a la misma conexión TCP se procesen en el mismo procesador lógico, que conserva la ordenación.

RSS también equilibra la carga del tráfico de multidifusión y unidifusión UDP y enruta flujos relacionados (que se determinan mediante el hash de las direcciones de origen y destino) al mismo procesador lógico, conservando el orden de las llegadas relacionadas. Esto ayuda a mejorar la escalabilidad y el rendimiento para escenarios con un alto volumen de recepción para servidores que tienen menos adaptadores de red que procesadores lógicos aptos.

Configuración de RSS

En Windows Server 2016, puede configurar RSS mediante cmdlets de Windows PowerShell y perfiles RSS.

Puede definir perfiles RSS mediante el parámetro –Profile del cmdlet Set-NetAdapterRss de Windows PowerShell.

Comandos de Windows PowerShell para la configuración de RSS

Los siguientes cmdlets permiten ver y modificar parámetros RSS por adaptador de red.

Nota

Para obtener una referencia detallada de comandos para cada cmdlet, incluida la sintaxis y los parámetros, puede hacer clic en los vínculos siguientes. Además, puede pasar el nombre del cmdlet a Get-Help en el símbolo del sistema de Windows PowerShell para obtener detalles sobre cada comando.

  • Disable-NetAdapterRss. Este comando deshabilita RSS en el adaptador de red que especifique.

  • Enable-NetAdapterRss. Este comando habilita RSS en el adaptador de red que especifique.

  • Get-NetAdapterRss. Este comando recupera las propiedades RSS del adaptador de red que especifique.

  • Set-NetAdapterRss. Este comando establece las propiedades RSS en el adaptador de red que especifique.

Perfiles de RSS

Puede usar el parámetro –Profile del cmdlet Set-NetAdapterRss para especificar qué procesadores lógicos se asignan a qué adaptador de red. Los valores disponibles que admite este parámetro son:

  • Closest. Se prefieren los números de procesador lógico que están cerca del procesador RSS base del adaptador de red. Con este perfil, el sistema operativo podría reequilibrar los procesadores lógicos dinámicamente en función de la carga.

  • ClosestStatic. Se prefieren los números de procesador lógico que están cerca del procesador RSS base del adaptador de red. Con este perfil, el sistema operativo no reequilibra los procesadores lógicos dinámicamente en función de la carga.

  • NUMA. Los números de procesador lógico se seleccionan generalmente en distintos nodos NUMA para distribuir la carga. Con este perfil, el sistema operativo podría reequilibrar los procesadores lógicos dinámicamente en función de la carga.

  • NUMAStatic. Este es el perfil predeterminado. Los números de procesador lógico se seleccionan generalmente en distintos nodos NUMA para distribuir la carga. Con este perfil, el sistema operativo no reequilibrará los procesadores lógicos dinámicamente en función de la carga.

  • Conservative. RSS usa la menor cantidad de procesadores posible para admitir la carga. Esta opción ayuda a reducir el número de interrupciones.

Según el escenario y las características de la carga de trabajo, también puede usar otros parámetros del cmdlet Set-NetAdapterRss de Windows PowerShell para especificar lo siguiente:

  • En función de un adaptador de red, cuántos procesadores lógicos se pueden usar para RSS.
  • El desplazamiento inicial del intervalo de procesadores lógicos.
  • El nodo desde el que el adaptador de red asigna memoria.

A continuación se muestran los parámetros set-NetAdapterRss adicionales que puede usar para configurar RSS:

Nota

En la sintaxis de ejemplo de cada parámetro siguiente, el nombre del adaptador de red Ethernet se usa como valor de ejemplo para el parámetro –Name del comando Set-NetAdapterRss. Al ejecutar el cmdlet, asegúrese de que el nombre del adaptador de red que use sea adecuado para su entorno.

  • * MaxProcessors: establece el número máximo de procesadores RSS que se van a usar. Esto garantiza que el tráfico de la aplicación esté enlazado a un número máximo de procesadores en una interfaz determinada. Sintaxis de ejemplo:

    Set-NetAdapterRss –Name "Ethernet" –MaxProcessors <value>

  • * BaseProcessorGroup: establece el grupo de procesadores base de un nodo NUMA. Esto afecta a la matriz de procesadores que RSS usa. Sintaxis de ejemplo:

    Set-NetAdapterRss –Name "Ethernet" –BaseProcessorGroup <value>

  • * MaxProcessorGroup: establece el grupo de procesadores máximo de un nodo NUMA. Esto afecta a la matriz de procesadores que RSS usa. El establecimiento de este parámetro restringiría un grupo de procesadores máximo para que el equilibrio de carga esté alineado dentro de un grupo k. Sintaxis de ejemplo:

    Set-NetAdapterRss –Name "Ethernet" –MaxProcessorGroup <value>

  • * BaseProcessorNumber: establece el número de procesadores base de un nodo NUMA. Esto afecta a la matriz de procesadores que RSS usa. Esto permite la creación de particiones de procesadores entre adaptadores de red. Este es el primer procesador lógico del intervalo de procesadores RSS asignados a cada adaptador. Sintaxis de ejemplo:

    Set-NetAdapterRss –Name "Ethernet" –BaseProcessorNumber <Byte Value>

  • * NumaNode: nodo NUMA del que cada adaptador de red puede asignar memoria. Puede estar dentro de un grupo k o de grupos k diferentes. Sintaxis de ejemplo:

    Set-NetAdapterRss –Name "Ethernet" –NumaNodeID <value>

  • * NumberofReceiveQueues: si los procesadores lógicos parecen estar infrautilizados para la recepción de tráfico (por ejemplo, como se ve en el Administrador de tareas), puede intentar aumentar el número de colas RSS de las 2 predeterminadas al máximo que admita el adaptador de red. Quizás el adaptador de red tenga opciones para cambiar el número de colas RSS como parte del controlador. Sintaxis de ejemplo:

    Set-NetAdapterRss –Name "Ethernet" –NumberOfReceiveQueues <value>

Para más información, haga clic en el siguiente vínculo para descargar el archivo Redes escalables: eliminación del cuello de botella del procesamiento de recepción (introducción a RSS) en formato de Word.

Descripción del rendimiento de RSS

Para optimizar RSS es necesario comprender la configuración y la lógica de equilibrio de carga. Para comprobar que la configuración RSS ha tenido efecto, puede revisar la salida al ejecutar el cmdlet Get-NetAdapterRss de Windows PowerShell. A continuación se muestra un ejemplo de salida de este cmdlet.


PS C:\Users\Administrator> get-netadapterrss
Name                           : testnic 2
InterfaceDescription           : Broadcom BCM5708C NetXtreme II GigE (NDIS VBD Client) #66
Enabled                        : True
NumberOfReceiveQueues          : 2
Profile                        : NUMAStatic
BaseProcessor: [Group:Number]  : 0:0
MaxProcessor: [Group:Number]   : 0:15
MaxProcessors                  : 8

IndirectionTable: [Group:Number]:
     0:0    0:4    0:0    0:4    0:0    0:4    0:0    0:4
…
(# indirection table entries are a power of 2 and based on # of processors)
…
                          0:0    0:4    0:0    0:4    0:0    0:4    0:0    0:4

Además de los parámetros de eco establecidos, el aspecto clave de la salida es la salida de la tabla de direccionamiento indirecto. La tabla de direccionamiento indirecto muestra los cubos de tabla hash que se usan para distribuir el tráfico entrante. En este ejemplo, la notación n:c designa el par de índices Grupo K:CPU Numa que se usa para dirigir el tráfico entrante. Vemos exactamente 2 entradas únicas (0:0 y 0:4), que representan el grupo k 0/cpu0 y el grupo k 0/cpu 4, respectivamente.

Solo hay un grupo k para este sistema (grupo k 0) y una entrada de tabla de direccionamiento indirecto n (donde n <= 128). Dado que el número de colas de recepción se establece en 2, solo se eligen 2 procesadores (0:0, 0:4), aunque el número máximo de procesadores esté establecido en 8. En efecto, la tabla de direccionamiento indirecto está aplicando el algoritmo hash al tráfico entrante para usar solo 2 CPU de los 8 que están disponibles.

Para utilizar completamente las CPU, el número de colas de recepción RSS debe ser igual o mayor que los procesadores máximos. En el ejemplo anterior, la cola de recepción debe establecerse en 8 como mínimo.

Formación de equipos NIC y RSS

RSS se puede habilitar en un adaptador de red que esté asociado con otra tarjeta de interfaz de red mediante Formación de equipos NIC. En este escenario, solo se puede configurar el adaptador de red físico subyacente para usar RSS. Un usuario no puede establecer cmdlets RSS en el adaptador de red asociado.

Receive Segment Coalescing (RSC)

La Fusión de segmentos de recepción (RSC) ayuda al rendimiento al reducir el número de encabezados IP que se procesan para una cantidad determinada de datos recibidos. Se debe usar para ayudar a escalar el rendimiento de los datos recibidos agrupando (o fusionando) los paquetes más pequeños en unidades más grandes.

Este enfoque puede afectar a la latencia con ventajas que se ven principalmente en las ganancias de rendimiento. Se recomienda RSC para aumentar el rendimiento de las cargas de trabajo pesadas recibidas. Considere la posibilidad de implementar adaptadores de red que admitan RSC.

En estos adaptadores de red, asegúrese de que RSC está activado (esta es la configuración predeterminada), a menos que tenga cargas de trabajo específicas (por ejemplo, baja latencia, redes de bajo rendimiento) que muestren la ventaja de que RSC está desactivada.

Descripción de los diagnósticos de RSC

Puede diagnosticar RSC mediante los cmdlets Get-NetAdapterRsc y Get-NetAdapterStatistics de Windows PowerShell.

A continuación se muestra un ejemplo de salida al ejecutar el cmdlet Get-NetAdapterRsc.


PS C:\Users\Administrator> Get-NetAdapterRsc

Name                       IPv4Enabled  IPv6Enabled  IPv4Operational IPv6Operational               IPv4FailureReason              IPv6Failure
                                            Reason
----                           -----------  -----------  --------------- --------------- ----------------- ------------
Ethernet                       True         False        True            False                  NoFailure       NicProperties

El cmdlet Get muestra si RSC se ha habilitado en la interfaz y si TCP permite que RSC esté en un estado operativo. El motivo del error proporciona detalles sobre el error al habilitar RSC en esa interfaz.

En el escenario anterior, IPv4 RSC se admite en la interfaz y funciona en esta. Para comprender los errores de diagnóstico, puede ver los bytes fusionados o las excepciones causadas. Esto proporciona una indicación de las incidencias de la fusión.

A continuación se muestra un ejemplo de salida al ejecutar el cmdlet Get-NetAdapterStatistics.

PS C:\Users\Administrator> $x = Get-NetAdapterStatistics "myAdapter"
PS C:\Users\Administrator> $x.rscstatistics

CoalescedBytes       : 0
CoalescedPackets     : 0
CoalescingEvents     : 0
CoalescingExceptions : 0

RSC y virtualización

RSC solo se admite en el host físico cuando el adaptador de red del host no está enlazado al conmutador virtual de Hyper-V. El sistema operativo deshabilita RSC cuando el host está enlazado al conmutador virtual de Hyper-V. Además, las máquinas virtuales no obtienen la ventaja de RSC porque los adaptadores de red virtual no admiten RSC.

RSC se puede habilitar para una máquina virtual cuando está habilitada la Virtualización de entrada/salida raíz única (SR-IOV). En este caso, las funciones virtuales admiten la funcionalidad RSC; por lo tanto, las máquinas virtuales también reciben la ventaja de RSC.

Recursos de adaptadores de red

Algunos adaptadores de red administran activamente sus recursos para lograr un rendimiento óptimo. Varios adaptadores de red permiten configurar manualmente los recursos mediante la pestaña Redes avanzadas del adaptador. Para tales adaptadores, puede establecer los valores de varios parámetros, incluido el número de búferes de recepción y los búferes de envío.

La configuración de recursos del adaptador de red se simplifica mediante el uso de los siguientes cmdlets de Windows PowerShell.

Para más información, consulte Cmdlets del adaptador de red en Windows PowerShell.

Para obtener vínculos a todos los temas de esta guía, consulte Ajuste de rendimiento del subsistema de red.