[GTER] ksoftirqd 100% [RESOLVIDO]

Marcelo Gondim gondim at intnet.com.br
Sat Aug 3 12:15:50 -03 2013


Em 03/08/13 00:49, Marcelo Gondim escreveu:
> Em 02/08/13 23:15, Rubens Kuhl escreveu:
>> 2013/8/2 Marcelo Gondim <gondim at intnet.com.br>
>>
>>> Pessoal,
>>>
>>> Faz muito tempo que não uso Linux em qualquer solução de roteamento com
>>> tráfego alto. Tenho usado FreeBSD mas hoje voltei à fazer testes com o
>>> Linux como concentrador PPPoE e quando o tráfego chega em 80Mbps lá 
>>> vem a
>>> porcaria do ksoftirqd consumindo CPU. Sei que isso está relacionado 
>>> com a
>>> alta requisição de interrupção no sistema mas pelo amor de Deus com 
>>> 80Mbps?
>>> A máquina é um Dual Quad Xeon de 3.0 Ghz com 8Gb de ram e uma Intel 
>>> Server
>>> Dual Port Gigabit.
>>>
>>> Anulei os conntracks usando:
>>>
>>> iptables -A OUTPUT -t raw -j NOTRACK
>>> iptables -A PREROUTING -t raw -j NOTRACK
>>>
>> PPPoE é frame não-IP no lado cliente, então verifique o ebtables...
>>
>>
>>
>>> Com isso não gero nenhuma conntrack no sistema.
>>> Fiz o cpu affinity distribuindo as irqs das interfaces de rede nas 
>>> cpus.
>>>
>> Sua placa de rede suporta isso para frames não-IP ? Talvez você esteja
>> conseguindo fazer balanceamento só no sentido downstream.
>>
>>
>>> echo 5 > /proc/sys/net/ipv4/netfilter/**ip_conntrack_tcp_timeout_close
>>> echo 15 > /proc/sys/net/ipv4/netfilter/**ip_conntrack_udp_timeout
>>> echo 90 > 
>>> /proc/sys/net/ipv4/netfilter/**ip_conntrack_udp_timeout_**stream
>>> echo 15 > /proc/sys/net/ipv4/netfilter/**ip_conntrack_icmp_timeout
>>> echo 300 > /proc/sys/net/ipv4/netfilter/**ip_conntrack_generic_timeout
>>>
>>> Mas mesmo com tudo isso ainda acontece o problema e o pior é que com
>>> exatamente esse mesmo hardware eu seguro um tráfego de 1.2Gbps no 
>>> FreeBSD
>>> com lacp.
>>>
>> Mas não rodando PPPoE, né ? Agregação PPPoE é um mundo bem diferente de
>> roteamento IP. Notar que mesmo roteadores ASIC tem performance slow-path
>> para PPPoE, tanto que existem equipamento s específicos para agregação
>> PPPoE de larga escala (exemplo Juniper série E).
>>
>>
>>> Alguém conseguiu descobrir como resolver esse problema definitivamente?
>>>
>> Desligar o PPPoE e mudar para DHCP.
>>
>>
>> Rubens
>> -- 
>> gter list    https://eng.registro.br/mailman/listinfo/gter
>>
> Pessoal,
>
> Vi em alguns fóruns uma alteração em tempo de boot e realmente 
> melhorou muito o load do sistema e o ksoftirqd abaixou e parece que 
> normalizou.
> Cheguei em 1019 usuários conectados e tráfego de 106Mbps e nenhum 
> problema ocorreu. Vou continuar observando.
> No boot do kernel fiz isso:
>
> clocksource=acpi_pm nohz=off highres=off
>
> http://www.mjmwired.net/kernel/Documentation/timers/highres.txt
> http://www.mjmwired.net/kernel/Documentation/timers/NO_HZ.txt
> https://www.centos.org/modules/newbb/viewtopic.php?topic_id=39308
>
> Se resolver mesmo, eu posto aqui novamente.
>
> []'s
> Gondim
>
Pessoal,

Resolvido com os parâmetros passados acima no boot do kernel.
Nesse exato momento:
Tráfego: 190Mbps
Clientes conectados no PPPoE: 1246
ksoftirqd baixo: entre 0.1% e 3.0% a média. o mais alto que vi foi 9.0%  
Antes desses ajustes batia entre 50.0% e 80.0%
Load fica em 0.80 e 1.20 a média.

Fica aqui como histórico.

[]'s
Gondim



More information about the gter mailing list