Rendimiento en adaptadores de red

Siempre hay inconvenientes en decidir qué funciones de hardware implementar en un adaptador de red. Es cada vez más importante considerar la posibilidad de agregar características de descarga de tareas que permiten moderación de interrupciones, ajuste dinámico en el hardware, mejora el uso del bus PCI y compatibilidad con marcos Jumbo. Estos son especialmente importantes para el adaptador de red de gama alta que se usará en las configuraciones que requieren un rendimiento superior.

Compatibilidad con la descarga de suma de comprobación de TCP y IP

Para el tráfico de red más común, la descarga del cálculo de suma de comprobación en el hardware del adaptador de red ofrece una ventaja de rendimiento significativa al reducir el número de ciclos de CPU necesarios por byte. El cálculo de suma de comprobación es la función más costosa de la pila de redes por dos motivos:

  • Contribuye a la longitud larga del trazado.
  • Provoca efectos de renovación de caché (normalmente en el remitente).

La descarga del cálculo de suma de comprobación al remitente mejora el rendimiento general del sistema al reducir la carga en la CPU del host y aumentar la eficacia de la memoria caché.

En el Laboratorio de rendimiento de Windows, hemos medido mejoras de rendimiento de TCP del 19 % cuando se ha descargado la suma de comprobación durante las cargas de trabajo que consumen mucha red. El análisis de esta mejora muestra que el 11 % de la mejora total se debe a la reducción de la longitud de la ruta de acceso y el 8 % se debe a aumentar la eficacia de las memorias caché.

La descarga de suma de comprobación en el receptor tiene las mismas ventajas que la descarga de la suma de comprobación en el remitente. Se puede ver una mayor ventaja en los sistemas que actúan como cliente y servidor, como un servidor proxy de sockets. En los sistemas en los que la CPU no está necesariamente ocupada, como un sistema cliente, la ventaja de descargar la suma de comprobación puede verse en mejores tiempos de respuesta de red, en lugar de mejorar notablemente el rendimiento.

Compatibilidad con la descarga de envío grande (LSO)

Windows ofrece la posibilidad de que el adaptador o controlador de red anuncie un tamaño de segmento máximo (MSS) mayor que el MTU a TCP de hasta 64 K. Esto permite que TCP asigne un búfer de hasta 64 K al controlador, lo que divide el búfer grande en paquetes que se ajustan a la MTU de red.

El trabajo de segmentación tcp se realiza mediante el hardware del controlador o adaptador de red en lugar de la CPU del host . Esto da como resultado una mejora significativa del rendimiento si la CPU del adaptador de red puede controlar el trabajo adicional.

Para muchos de los adaptadores de red probados, se ha observado poca mejora en las actividades de red puras cuando la CPU del host era más eficaz que el hardware del adaptador de red. Sin embargo, en el caso de las cargas de trabajo empresariales típicas, se ha medido una mejora general del rendimiento del sistema de hasta el 9 % del rendimiento, ya que la CPU del host usa la mayoría de sus ciclos para ejecutar transacciones. En estos casos, la descarga de la segmentación TCP en el hardware libera la CPU del host de la carga de segmentación, lo que le permite realizar más ciclos para realizar más transacciones.

Compatibilidad con la descarga de seguridad ip (IPSec)

Windows ofrece la posibilidad de descargar el trabajo de cifrado de IPSec en el hardware del adaptador de red. El cifrado, especialmente 3 DES (también conocido como triple DES), tiene una relación de ciclos/bytes muy alto. Por lo tanto, no es sorpresa que la descarga de IPSec en el hardware del adaptador de red midió un aumento del rendimiento del 30 % en pruebas seguras de Internet y VPN.

Mejora de la moderación de interrupciones

Un adaptador de red simple genera una interrupción de hardware en el host a la llegada de un paquete o para indicar la finalización de una solicitud de envío de paquetes. La latencia de interrupción y los efectos resultantes de la renovación de caché agregan sobrecarga al rendimiento general de la red. En muchos escenarios (por ejemplo, el uso intensivo del sistema o el tráfico de red intensivo), es mejor reducir el costo de la interrupción del hardware mediante el procesamiento de varios paquetes para cada interrupción.

Con cargas de trabajo de red intensivas, se ha medido hasta un 9 % de mejora del rendimiento en el rendimiento a través de cargas de trabajo intensivas en la red. Sin embargo, el ajuste de los parámetros de moderación de interrupciones solo para las mejoras de rendimiento puede dar lugar a un impacto de rendimiento en el tiempo de respuesta. Para mantener una configuración óptima y adaptarse a diferentes cargas de trabajo, es mejor permitir parámetros ajustados dinámicamente, como se describe en el ajuste automático más adelante en este artículo.

Uso eficaz del bus PCI

Uno de los factores más importantes en el rendimiento del hardware del adaptador de red es la eficacia de uso del bus PCI. Además, el rendimiento de DMA del adaptador de red afecta al rendimiento de todas las tarjetas PCI que se encuentran en el mismo bus PCI. Se deben tener en cuenta las siguientes directrices al optimizar el uso de PCI:

  • Optimice las transferencias de DMA mediante la agregación de páginas de destino cuando corresponda.

  • Reduzca la sobrecarga del protocolo PCI realizando DMA en fragmentos grandes (al menos 256 bytes). Si es posible, el flujo de datos para que se transfieran paquetes completos en una sola transacción PCI. Sin embargo, tenga en cuenta cómo debe realizarse la transferencia. Por ejemplo, no espere a que lleguen todos los datos antes de iniciar las transferencias, ya que la espera aumentará la latencia y consumirá espacio adicional en el búfer.

  • Es mejor rellenar la transferencia de paquetes DMA con bytes adicionales, en lugar de requerir una breve transferencia adicional para "limpiar" mediante la transferencia de los últimos bytes del paquete.

  • Use las transacciones Lectura de memoria, Línea de lectura de memoria y Lectura de memoria múltiple según lo recomendado por la especificación PCI.

  • El hardware de la interfaz del bus del adaptador de red debe detectar limitaciones en el controlador de memoria del host y ajustar el comportamiento según corresponda. Por ejemplo, el hardware de la interfaz del bus del adaptador de red debe detectar limitaciones de captura previa del controlador de memoria en lecturas de memoria DMA y esperar un breve período antes de volver a intentar la transacción. El hardware debe detectar reintentos excesivos en la parte del adaptador de red y aumentar el tiempo antes del primer reintento en futuras transacciones cuando el host lo corte. No hay ningún punto en continuar con el envío de transacciones al controlador de memoria cuando esté seguro de que todavía está ocupado capturando el siguiente conjunto secuencial de datos.

  • Minimice la inserción de estados de espera, especialmente durante las transferencias de datos. Es mejor renunciar al bus y dejar que otro adaptador PCI que use el bus realice algún trabajo si se van a insertar más de uno o dos estados de espera.

  • Use E/S asignada de memoria en lugar de E/S programada. Esto también es cierto para los controladores.

Compatibilidad con marcos jumbo

Admitir unidades de transmisión máximas (MTU) más grandes y, por tanto, tamaños de fotogramas más grandes, específicamente marcos Jumbo, reducirá la sobrecarga de la pila de red en la que se incurre por byte. Se ha medido un aumento del rendimiento tcp del 20 % cuando la MTU se cambió de 1514 a 9000. Además, se obtiene una reducción significativa del uso de la CPU debido al menor número de llamadas de la pila de red al controlador de red.