Afunilamentos de desempenho da modelagem de tráfego do Linux (tc)

2

Eu tenho um problema interessante.

Nós temos um servidor Linux com o Debian Stretch instalado. O servidor tem uma única CPU E5-2680 v2 e Intel 82599ES 10G Dual Port NIC. Não há outros serviços (como HTTP e assim por diante) em execução.

Tudo parece bom, até eu ativar a modelagem de tráfego. As regras de formatação consistem em htb qdisc na interface bond0 e bond1 .

Existe um filtro hash de três etapas:

  1. Filtro de quatro regras para selecionar uma grande sub-rede. As regras são assim:

    protocol ip u32 ht 800:: match ip src 10.15.0.0/18 hashkey mask 0x0000ff00 at 12 link 1:
    
  2. 60 ou mais tabelas de regras para selecionar / 24 fora dessa grande sub-rede

    protocol ip u32 ht 1:10 match ip src 10.15.16.0/24 hashkey mask 0x000000ff at 12 link 100:
    
  3. 256 tabelas de regras para corresponder ao IP

    parent 1:0 prio 100 protocol ip u32 ht 100:20: match ip src 10.15.16.32 flowid 1:20    
    class add dev bond0 parent 1:0 classid 1:1 htb rate 24Gbit ceil 24Gbit burst 4096k cburst 256k
    class add dev bond0 parent 1:1 classid 1:20 htb rate 102400Kbit  burst 4096k cburst 256k    
    qdisc add dev bond0 parent 1:20 pfifo_fast
    

Agora, quando habilito essas regras, recebo no máximo cerca de 10Gbps de tráfego total e, em seguida, o ping começa a ir até 100ms ou mais. No entanto, durante esse tempo, a carga da CPU é quase nenhuma - uptime mostra uma carga de 0,07 e cada núcleo da CPU é apenas cerca de 5% utilizado. ping instantaneamente fica OK quando eu limpo as regras de formatação.

Anteriormente, usei sfq em vez de pfifo_fast e isso resultou em uma grande carga de CPU. Em seguida, mudei para vermelho, o que produziu resultados um pouco melhores sem carga de CPU, depois mudei para pfifo_fast , o que produz quase os mesmos resultados que o vermelho.

  • Que outro gargalo poderia estar lá?
  • Alguém já tentou usar o modelador de tráfego do Linux para uma rede com mais de 10gbps?
por Pentium100 21.12.2017 / 22:11

0 respostas