Uso da CPU com% de carga alta durante a alta carga de rede no ixgbe

4

Temos uma NIC Intel 82598EB 10GBE. A carga da rede é composta por vários pacotes UDP de tamanho pequeno. Para simular um DDoS, de outro servidor, enviamos um pequeno pacote UDP de ~ 100k pps (apenas alguns Mbit de largura de banda). Quando o fazemos, o uso da% CPU baixa chega a 100%, tornando o servidor inutilizável e descartando pacotes.

O kernel é 3.8.5, ixgbe 3.13.10 Já fizemos alguns ajustes para diminuir a taxa de interrupções (rx-usecs: 300), mas não resolvemos o problema. Existe uma maneira de verificar por que softirqs usam muita CPU mesmo se a taxa de interrupções não for alta?

Obrigado!

    
por Saverio Giuntini 04.04.2013 / 14:34

1 resposta

0

Eu sei que isso é velho; mas estou respondendo principalmente para usuários que vêm aqui com problemas semelhantes.

Existem algumas formas de verificar as interrupções:

  • cat /proc/interrupts registra interrupções por CPU e dispositivo IO.
  • grep cpu /proc/stat coluna 6 e 7 contêm irq e softirq stats.
  • top e htop ; observe si e, se você alterar o htop para o modo de exibição avançado para CPUs, poderá ver si e hi .
  • Para obter dados históricos, instale sysstat ; para obter dados de interrupção específicos, consulte sar -I XALL .
  • Você também pode usar perf .

Como esse é provavelmente um problema de driver (ou a NIC está falhando) eu verificaria qualquer overruns ou errors na interface; se não houver nenhum, veja se há uma atualização para o driver.

    
por 14.05.2015 / 19:24