Compartir vía


Rendimiento en adaptadores de red

Siempre hay inconvenientes a la hora de 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. Estas características de descarga son importantes para el adaptador de red de gama alta que se usa en configuraciones que requieren un rendimiento superior.

Compatibilidad con la descarga de suma de comprobación de TCP e 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 de la ruta de acceso larga.
  • Provoca efectos de abandono de caché (normalmente en el remitente).

La descarga del cálculo de la 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 las 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 la 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 000. Esto permite a TCP asignar un búfer de hasta 64 000 al controlador, que divide el búfer grande en paquetes que caben en la MTU de red.

El trabajo de segmentación TCP se realiza mediante el hardware del adaptador o controlador 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, hubo 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, para 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 permite que los ciclos adicionales realicen 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 y bytes muy alto. Por lo tanto, no es de extrañar que la descarga de IPSec al hardware del adaptador de red midiera 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 tras 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 renovación de caché agregan sobrecarga al rendimiento general de las redes. En muchos escenarios (por ejemplo, el uso intensivo del sistema o el tráfico de red intensivo), es mejor reducir el coste 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 en el rendimiento a través de cargas de trabajo que consumen mucha 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 en el 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 la sección de 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 están en el mismo bus PCI. Se deben tener en cuenta las siguientes directrices al optimizar el uso de PCI:

  • Optimice las transferencias de DMA agregando páginas de destino cuando corresponda.

  • Reduzca la sobrecarga del protocolo PCI realizando DMA en fragmentos grandes (al menos 256 bytes). Si es posible, cronometre el flujo de datos para que todos los paquetes se transfieran 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 esperar aumentará la latencia y consumirá espacio de búfer adicional.

  • 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 en consecuencia. Por ejemplo, el hardware de 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 debería detectar reintentos excesivos por parte del adaptador de red y aumentar el tiempo antes del primer reintento en futuras transacciones cuando el host las corte. No tiene sentido seguir enviando transacciones al controlador de memoria cuando se tiene la certeza de que aún está ocupado obteniendo 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 asignadas a memoria en lugar de E/S programadas. Lo mismo ocurre con los controladores.

Compatibilidad con marcos de jumbo

Admitir unidades de transmisión máximas (MTU) más grandes y, por lo tanto, tamaños de fotogramas más grandes, específicamente marcos de Jumbo, reduce la sobrecarga de la pila de red en la que se incurre por byte. Se ha medido un aumento del rendimiento de TCP del 20 % cuando se cambió la MTU 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.