[CentOS-pt-br] ksoftirq me ferrando a vida

Marcelo Gondim gondim em linuxinfo.com.br
Sexta Maio 6 10:01:02 EDT 2011


Olá pessoal,

Só pra movimentar mais a lista rsrsrsrs

Estou com um problema sinistro aqui. Vou descrever meu ambiente e depois 
o que está ocorrendo:

Aqui é um ISP com ASN e logicamente usando BGP. Nosso link hoje é de 
320Mbps indo para 500Mbps.

Tenho um router usando Mikrotik com 2 interfaces Intel Gigabit e este 
faz o roteamento BPG. Logo depois tenho um Firewall CentOS em um Intel 
Core I5 com 4Gb de ram e 2 Interfaces Intel Gigabit. Nosso tráfego hoje 
em momentos de pico chega à 250Mbps. São 2 cidades usando esse link, 
sendo que aqui em Araruama o consumo é maior chegando à 150Mbps os 
outros 100Mbps da outra Cidade.

Depois das 14:00 horário em que o tráfego costuma aumentar estou tendo 
aleatoriamente problemas com o ksoftirq nas 2 interfaces de rede do 
Firewall que elas vão pra 45 à 100% de uso de CPU e aí o tráfego vai 
caindo até parar fica um certo tempo assim e depois volta ao normal. 
Passa algum tempo e começa o problema. Já fiz algumas coisas para tentar 
resolver já que no messages não mostra nada de anormal no momento do 
problema. Coisas que fiz:

1) Tentei com outra distro linux e aconteceu a mesma coisa, logo não 
está relacionado com alguma característica específica da distro. Voltei 
para o nosso CentOS, claro.  :)
2) Troquei o hardware do Firewall que era um Intel Quad Core e passou à 
ser um Intel Core i5. Não adiantou também.
3) Mudei uns parâmetros de sysctl também para tentar algo e foi em vão. 
Abaixo minha sysctl atual:

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.neigh.default.gc_thresh1 = 65535
net.ipv4.neigh.default.gc_thresh2 = 65535
net.ipv4.neigh.default.gc_thresh3 = 65535
net.ipv4.route.gc_min_interval = 0
net.ipv4.route.max_size = 524288
kernel.printk = 3 4 1 3
net.ipv4.tcp_max_syn_backlog = 30000
net.ipv4.tcp_congestion_control = cubic

Outras mudanças que fiz com conntracks e tal:

   echo 3276822 > /proc/sys/net/ipv4/ip_conntrack_max
   echo 86400 > 
/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

4) Agora troquei o router que antes era um P4 por um Quad Core, pois 
pensei na hipótese do Router não estar aguentando as requisições e estou 
aguardando para ver se vai dar o problemas novamente.

5) Os cabos que interligando Firewall, Router e Servidores são CAT6 e as 
portas na Switch são gigabit.

Alguém já passou por isso ou tem alguma idéia sobre esse tipo de problema?

[]´s à todos






Mais detalhes sobre a lista de discussão CentOS-pt-br