Compartir a través de


Introducción al escalado lateral de recepción

El escalado lateral de recepción (RSS) es una tecnología de controlador de red que permite la distribución eficaz del procesamiento de recepción de red en varias CPU en sistemas multiprocesador.

Nota

Dado que las CPU hiperprocesadas en el mismo procesador principal comparten el mismo motor de ejecución, el efecto no es el mismo que tener varios procesadores principales. Por este motivo, RSS no usa procesadores hiperprocesos.

Para procesar los datos recibidos de forma eficaz, una función de servicio de interrupción del controlador de miniporte programa una llamada a procedimiento diferido (DPC). Sin RSS, un DPC típico indica todos los datos recibidos dentro de la llamada DPC. Por lo tanto, todo el procesamiento de recepción asociado a la interrupción se ejecuta en la CPU donde se produce la interrupción de recepción. Para obtener información general sobre el procesamiento de recepción no RSS, consulte Procesamiento de recepción no RSS.

RSS permite que la NIC y el controlador de miniporte programen la recepción de DPC en otros procesadores. El diseño RSS garantiza que el procesamiento asociado a una conexión determinada permanece en una CPU asignada. La NIC implementa una función hash y el valor hash resultante ayuda a seleccionar una CPU.

En la ilustración siguiente se muestra el mecanismo RSS para determinar una CPU.

Diagrama que muestra el proceso del mecanismo RSS para determinar una CPU.

Una NIC usa una función hash para calcular un valor hash en un área definida (tipo hash) dentro de los datos de red recibidos. El área definida puede ser nocontiguosa.

Se usan varios bits menos significativos (LSB) del valor hash para indexar una tabla de direccionamiento indirecto. Los valores de la tabla de direccionamiento indirecto se usan para asignar los datos recibidos a una CPU.

Para obtener información más detallada sobre cómo especificar tablas de direccionamiento indirecto, tipos hash y funciones hash, consulte Configuración rss.

Con la compatibilidad con la interrupción señalada de mensaje (MSI), una NIC también puede interrumpir la CPU asociada. Para obtener más información sobre la compatibilidad de NDIS con las MSA, consulte MSI-X de NDIS.

Compatibilidad de hardware con RSS

En la ilustración siguiente se muestran los niveles de compatibilidad de hardware con RSS.

Diagrama que muestra los distintos niveles de compatibilidad de hardware con RSS.

Hay tres niveles posibles de compatibilidad de hardware con RSS:

La NIC siempre pasa el valor hash de 32 bits.

Cómo mejora el rendimiento del sistema RSS

RSS puede mejorar el rendimiento del sistema de red reduciendo:

  • Retrasos en el procesamiento mediante la distribución del procesamiento de recepción de una NIC en varias CPU.

    La distribución del procesamiento de recepción ayuda a garantizar que ninguna CPU está muy cargada mientras otra CPU está inactiva.

  • Sobrecarga de bloqueo de número aumentando la probabilidad de que los algoritmos de software que comparten datos se ejecuten en la misma CPU.

    La sobrecarga de bloqueo de número se produce, por ejemplo, cuando una función que se ejecuta en CPU0 posee un bloqueo de número en los datos a los que debe tener acceso una función que se ejecuta en CPU1. CPU1 gira (espera) hasta que CPU0 libera el bloqueo.

  • Recarga de cachés y otros recursos aumentando la probabilidad de que los algoritmos de software que comparten datos se ejecuten en la misma CPU.

    Esta recarga se produce, por ejemplo, cuando una función que ejecuta y accede a datos compartidos en CPU0, se ejecuta en CPU1 en una interrupción posterior.

Para lograr estas mejoras de rendimiento en un entorno seguro, RSS proporciona los siguientes mecanismos:

  • Procesamiento distribuido

    RSS distribuye el procesamiento de indicaciones de recepción de una NIC determinada en DPC a varias CPU.

  • Procesamiento en orden

    RSS conserva el orden de entrega de paquetes de datos recibidos. Para cada conexión de red, los procesos RSS reciben indicaciones en una CPU asociada. Para obtener más información sobre el procesamiento de recepción RSS, vea Indicación de datos de recepción RSS.

  • Equilibrio de carga dinámico

    RSS proporciona un medio para reequilibrar la carga de procesamiento de red entre CPU a medida que varía la carga del sistema host. Para reequilibrar la carga, los controladores con exceso pueden cambiar la tabla de direccionamiento indirecto. Para obtener más información sobre cómo especificar tablas de direccionamiento indirecto, tipos hash y funciones hash, vea Configuración rss.

  • Escalado del lado de envío

    RSS permite que las pilas de controladores procesen los datos de envío y recepción de una conexión determinada en la misma CPU. Normalmente, un controlador de exceso (por ejemplo, TCP) envía parte de un bloque de datos y espera una confirmación antes de enviar el saldo de los datos. A continuación, la confirmación desencadena las solicitudes de envío posteriores. La tabla de direccionamiento indirecto RSS identifica una CPU determinada para el procesamiento de datos de recepción. De forma predeterminada, el procesamiento de envío se ejecuta en la misma CPU si se desencadena mediante la confirmación de recepción. Un controlador también puede especificar la CPU (por ejemplo, si se usa un temporizador).

  • Hash seguro

    RSS incluye una firma que proporciona seguridad agregada. Esta firma protege el sistema de hosts remotos malintencionados que podrían intentar forzar el sistema a un estado desequilibrado.

  • Compatibilidad con MSI-X

    RSS, con compatibilidad con MSI-X, ejecuta la rutina de servicio de interrupción (ISR) en la misma CPU que más adelante ejecuta el DPC. Esto reduce la sobrecarga de bloqueo de número y la recarga de cachés.