Se alguém mais estiver tentando descobrir como fazer com que a pilha TCP / IP do Linux Networking seja dimensionada em vários núcleos de CPU ...
O MSI pode ser explorado por duas tecnologias de NIC subjacentes para distribuir pacotes em várias filas. Cada fila NIC é manipulada por uma interrupção diferente em um núcleo de CPU dedicado para obter escalabilidade:
- RSS (Receive Side Scaling) - distribui pacotes para diferentes filas por IP de origem e destino e, se aplicável, por portas de origem e de destino TCP / UDP.
- VMDq (filas de dispositivo de máquina virtual) - distribui pacotes por endereço MAC ou tags de VLAN. Usado principalmente pelos hipervisores de VM, mas não vejo nenhum motivo para que ele não possa ser usado em configurações de não-VM.
O problema com o RSS é que ele sempre usa IP de origem para gerar um hash. Hash é usado para encontrar em qual fila este pacote deve ir. Isso significa que não é possível controlar quais pacotes devem ir para qual fila, a menos que ele também tenha controle sobre os IPs de origem.
O VMDq parece ser mais apropriado para o meu problema, porque ele distribui pacotes pelo endereço MAC de destino. Pode ser tão simples quanto atribuir dois endereços IP diferentes à mesma interface.
Fonte: