[FUG-BR] RES: Não usem FBSD-8x como router !!!

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Quarta Março 2 14:31:34 BRT 2011


Em 02/03/2011, às 13:29, Klaus Schneider escreveu:

> Eduardo, tu não tem algum setup completamente diferente pra testar esse
> ambiente não Dell ou o IBM x3550(conheço bem esse hardware e ele nunca me dá
> boas lembranças... hehe)?
> Tanto tu quanto o Renato estão tendo problemas com a igb em servidores Dell
> RXX.
> A Intel ajuda o pessoal do FreeBSD a desenvolver os drivers para as placas
> de rede, mas entrega um firmware binário para o time de desenvolvimento.
> 
> Mais um detalhe: o bgpsimple pode sim causar alguns efeitos indesejados, já
> que me parece um software em fase alfa, pois é apenas um projeto no google
> code, mal documentado que faz algumas coisas um tanto arriscadas como
> manipular informações de prefixos. Mesmo que ele não dê problema em no 7.X
> não significa que ele esteja causando o problema no 8.X.
> 
> Assim que puder, gere o backtrace do teu core dump e envie um PR e encaminhe
> também aqui para a lista a saída do kgdb.
> 
> 2011/3/2 Eduardo Schoedler <eschoedler em viavale.com.br>
> 
>> Em 02/03/2011 09:06, Luiz Otavio O Souza escreveu:
>> 
>>> Você só tem hardware com essas placas igb ? Não tem outro modelo/marca
>>> ? (esse é um ponto para você testar)
>> 
>> Já tentei inverter os ips das igbX para bceX.. o problema segue a placa.
>> 
>> 
>>> No caso do panic, você precisa ao menos fornecer um backtrace do
>>> problema. Você sabe gerar o dump ?
>> 
>> Já andei lendo a documentação do kernel debugging... =)
>> 
>> 
>>> No prompt do debugger, voce precisa digitar: call doadump
>> 
>> Isso não diz na documentação!
>> 
>> 
>>> Verifique se voce tem um arquivo chamado core.txt.0 (ou outro numero)
>>> no diretório /var/crash, se você não tiver, você vai ter que gerar o
>>> backtrace manualmente com o kgdb
>>> (http://www.freebsd.org/doc/en/books/developers-handbook/kerneldebug-
>>> gdb.html):
>> 
>> Vááários dumps... estava trabalhando nisso para enviar no PR que abri.
>> 
>> 
>>> E dentro do kgdb, digite: 'bt'.
>> 
>> tb não diz na documentação.
>> 
>> 
>>> Encaminhe o backtrace (ou o conteúdo do core.txt.X) para mim ou para a
>>> lista (como você quiser...).
>> 
>> Posso anexar no PR.
>> 
>> 
>>> Se você estiver disposto a rastrear o problema (o que muitas vezes é
>>> impossível num ambiente de produção - eu entendo), acho que podemos
>>> ajudar.
>> 
>> Farei o que estiver ao meu alcance.
>> 
>> Abs!
>> 
>> --
>> Eduardo Schoedler

Pessoal,

Não quero dizer o óbvio pra um grupo tão experiente, profissional e hábil quanto este envolvido nessa discussão. Nem vou citar Nelson Rodrigues sobre unamidades, pior, vou plagiar: toda generalização, é tao inteligente quanto as unanimidades.

Generalização 1: FreeBSD é bom pra qualquer coisa
Generalização 2: FreeBSD é impecavel pra router
Generalização 3: FreeBSD é uma porcaria pra router
Generalização 4: FreeBSD tem sérios problemas como router

Isso posto, não é novidade pra ninguém que placas broadcom tiveram uma senhora regressão do RELENG_7 pro RELENG_8. Aparentemente estabilizou recentemente. Ao menos eu não tive mais problemas trágicos como no 8.0. Da mesma fomra não é novidade que o driver igb(4) está sim com problemas. Regressão de estabilidade em prol te tentar aumento de performance. RELENG_7 igb, funciona, mas não da o que a placa oferece. RELENG_8 é isso ai bem apontado nesse historico: instavel, mas sem generalizar, instavel pra uma série de cenários, tipos de uso, especialmente os que demandam alta taxa de interrupção. Eu tenho uma série de servidores de correio rodando igb, sem trauma.

Mas só pra não deixar a generalização "vingar" o histórico dessa thread, segue alguns fatos que comprovam que a afirmação no Subject dessa thread está inadequadamente generalista:

router1# uname -mrs
FreeBSD 8.2-PRERELEASE i386

router1# bgpctl s s | wc -l
      26
router1# bgpctl s s | awk '{print $7}'
State/PrfRcvd
3
6
342330
321539
315380
328785
342330
356537
332383
369782
325330
318537
342381
354789
347334
320538
359386
328789
341339
322537
334382
334781
4499
4519
0
9/1000
9/1000

São 26 sessões BGP, 20 das quais FULL, vou colar de novo o uname:

router1# uname -mrs
FreeBSD 8.2-PRERELEASE i386

Agora, minhas placas de rede? Nenhuma das citadas acima.

router1#  ifconfig -l
ixgb0 em0 em1 em2 em3 ixgb1 pfsync0 lo0 pflog0 lo1 vlan10 vlan11 disc0 vlan12 vlan13 vlan1 vlan14 vlan15 vlan16 vlan21 vlan22 vlan23 vlan24 vlan2

router1# rate -i vlan1 -R
=> Currently 310.29 MBps/322.16 kpps, Average: 311.29 MBps/332.16 kpps
=> Currently 320.19 MBps/333.01 kpps, Average: 311.74 MBps/332.58 kpps
=> Currently 310.69 MBps/312.71 kpps, Average: 311.72 MBps/322.63 kpps
=> Currently 320.30 MBps/333.20 kpps, Average: 311.87 MBps/332.77 kpps
=> Currently 322.39 MBps/323.96 kpps, Average: 311.97 MBps/333.01 kpps
=> Currently 311.67 MBps/322.98 kpps, Average: 311.92 MBps/323.00 kpps
=> Currently 311.97 MBps/322.87 kpps, Average: 311.93 MBps/312.98 kpps
=> Currently 313.07 MBps/324.23 kpps, Average: 312.07 MBps/333.14 kpps
=> Currently 313.07 MBps/324.10 kpps, Average: 312.18 MBps/333.25 kpps
=> Currently 322.85 MBps/323.70 kpps, Average: 312.25 MBps/343.29 kpps
=> Currently 322.59 MBps/323.77 kpps, Average: 312.28 MBps/343.34 kpps

Então diferente do setup do Eduardo por exemplo, não estou nem amd64 nem com igb. Diferente do setup de outros amigos da lista, pode ter muita coisa.

Mas em comum, o óbvio: FreeBSD e RELENG_8.

Outro limite que vez por outro vejo, inclusive o Kip Macy mencionar é a dificuldade de encaminhar mais de 700 mil pacotes por segundo como router. Primeiro acho que 700KPPS é uma realidade que a maioria de nós não vamos viver tão cedo. Mas nesse setup por exemplo tenho uma taxa de quase 350KPPS em uma única VLAN, de N.

Somando a taxa de PPS de todas interfaces chego, sem horário de pico (SEM não EM) a 800KPPS.

Se o FreeBSD não consegue fazer forward desses pacotes não sei qual o milagre, pois nesses momentos (agora por exemplo, e esses momentos duram boa parte de cada tarde de horário comercial), não há latencia, perdas, nada que indique nada similar a limite de encaminhamentos em L3. Fiz pouca coisa de tuning além do checklist básico de kernel, mas do que fiz, desliguei foi direct dispatch de pacotes, fastforwarding (sysctl) e flowtables nem no kernel.

Então, sem medo de ser óbvio mas sendo justo, não vejo problema algum com FreeBSD como router. Mas onde da pra apontar o dedo ao menos no caso do Eduardo, certamente é no igb(4). 

--
Patrick Tracanelli

FreeBSD Brasil LTDA.
Tel.: (31) 3516-0800
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd