Red Hat Training

A Red Hat training course is available for RHEL 8

21.5. Recibir dirección de paquetes

El Receive Packet Steering (RPS) es similar al RSS en el sentido de que se utiliza para dirigir los paquetes a CPUs específicas para su procesamiento. Sin embargo, el RPS se implementa a nivel de software y ayuda a evitar que la cola de hardware de una única tarjeta de interfaz de red se convierta en un cuello de botella en el tráfico de la red. El RPS tiene varias ventajas sobre el RSS basado en hardware:

  • El RPS puede utilizarse con cualquier tarjeta de interfaz de red.
  • Es fácil añadir filtros de software a RPS para hacer frente a nuevos protocolos.
  • RPS no aumenta la tasa de interrupciones de hardware del dispositivo de red. Sin embargo, sí introduce interrupciones entre procesadores.

El RPS se configura por dispositivo de red y cola de recepción, en el archivo /sys/class/net/device/queues/rx-queue/rps_cpus donde device es el nombre del dispositivo de red, como enp1s0 y rx-queue es el nombre de la cola de recepción apropiada, como rx-0.

El valor por defecto del archivo rps_cpus es 0. Esto desactiva el RPS, y la CPU maneja la interrupción de la red y también procesa el paquete. Para habilitar RPS, configure el archivo rps_cpus apropiado con las CPUs que deben procesar los paquetes del dispositivo de red especificado y la cola de recepción.

Los archivos rps_cpus utilizan mapas de bits de CPU delimitados por comas. Por lo tanto, para permitir que una CPU maneje las interrupciones de la cola de recepción en una interfaz, establezca el valor de sus posiciones en el mapa de bits en 1. Por ejemplo, para manejar las interrupciones con las CPUs 0, 1, 2, y 3, configure el valor de rps_cpus a f, que es el valor hexadecimal de 15. En representación binaria, 15 es 00001111 (1 2 4 8).

En el caso de los dispositivos de red con colas de transmisión únicas, el mejor rendimiento se puede conseguir configurando el RPS para que utilice las CPU en el mismo dominio de memoria. En los sistemas que no son NUMA, esto significa que se pueden utilizar todas las CPUs disponibles. Si la tasa de interrupción de la red es extremadamente alta, excluir la CPU que maneja las interrupciones de la red también puede mejorar el rendimiento.

Para los dispositivos de red con múltiples colas, no suele ser beneficioso configurar tanto RPS como RSS, ya que RSS está configurado para asignar una CPU a cada cola de recepción por defecto. Sin embargo, RPS puede seguir siendo beneficioso si hay menos colas de hardware que CPUs, y RPS está configurado para usar CPUs en el mismo dominio de memoria.