Red Hat Training
A Red Hat training course is available for RHEL 8
21.5. Receber a direção de pacotes
O RPS (Receive Packet Steering) é similar ao RSS, pois é usado para direcionar pacotes para CPUs específicas para processamento. Entretanto, o RPS é implementado no nível de software e ajuda a evitar que a fila de hardware de uma única placa de interface de rede se torne um gargalo no tráfego da rede. O RPS tem várias vantagens em relação ao RSS baseado em hardware:
- O RPS pode ser usado com qualquer placa de interface de rede.
- É fácil adicionar filtros de software ao RPS para lidar com novos protocolos.
- O RPS não aumenta a taxa de interrupção do hardware do dispositivo de rede. No entanto, ele introduz interrupções inter-processador.
O RPS é configurado por dispositivo de rede e recebe fila, na /sys/class/net/device/queues/rx-queue/rps_cpus
onde device é o nome do dispositivo de rede, como enp1s0 e rx-queue é o nome da fila de recepção apropriada, como rx-0.
O valor padrão do arquivo rps_cpus
é 0. Isso desativa o RPS, e a CPU lida com a interrupção da rede e também processa o pacote. Para ativar o RPS, configure o arquivo rps_cpus
apropriado com as CPUs que devem processar os pacotes a partir do dispositivo de rede especificado e receber a fila.
Os arquivos rps_cpus
utilizam bitmaps de CPU delimitados por vírgulas. Portanto, para permitir que uma CPU possa lidar com interrupções para a fila de recepção em uma interface, defina o valor de suas posições no bitmap para 1. Por exemplo, para lidar com interrupções com CPUs 0
, 1
, 2
, e 3
, defina o valor do rps_cpus
para f, que é o valor hexadecimal para 15
. Em representação binária, 15
é 00001111 (1 2 4 8)
.
Para dispositivos de rede com filas de transmissão únicas, o melhor desempenho pode ser alcançado configurando o RPS para usar CPUs no mesmo domínio de memória. Em sistemas que não sejam do tipoNUMA, isto significa que todas as CPUs disponíveis podem ser utilizadas. Se a taxa de interrupção da rede for extremamente alta, excluindo a CPU que lida com as interrupções da rede também pode melhorar o desempenho.
Para dispositivos de rede com múltiplas filas, normalmente não há benefício em configurar tanto RPS quanto RSS, já que o RSS é configurado para mapear uma CPU para cada fila de recepção por padrão. Entretanto, o RPS ainda pode ser benéfico se houver menos filas de hardware do que CPUs, e o RPS é configurado para usar CPUs no mesmo domínio de memória.