[GTER] Roteador para 1,5Gbps de Link

Patrick Tracanelli eksffa at freebsdbrasil.com.br
Mon Sep 10 13:24:35 -03 2012


Em 05/09/2012, às 23:07, Paulo Henrique escreveu:

> Em 5 de setembro de 2012 16:15, Patrick Tracanelli <
> eksffa at freebsdbrasil.com.br> escreveu:
> 
>> 
>>>>> 
>>>>> Em 03/09/2012, às 17:10, "Luiz Ambrozini - Info - Netserv" <
>>>>> luiz at netserv.com.br> escreveu:
>>>>> 
>>>>>> Boa tarde a Todos. Gostaria de indicações de Roteadores para 1,5GB de
>>>>> link.
>>>>>> Tenho 2 trânsitos com operadores distintas e vou ampliar para 1GB com
>> uma
>>>>>> operadora e 500mbps com a outra operadora. Hoje utilizo 2 servidores
>> Dell
>>>>>> R210 com 1 transito cada servidor. Acredito que o servidor que irá
>>>>> receber o
>>>>>> transito de 1gbps não ira suportar. Recebo Full Routing dos 2
>> trânsitos.
>> 
>> Aqui eu roteio 2Gbps redondo, recebidos de 3 upstreams + PTT com um
>> servidor commoditie baseado em Intel Server (de placa mãe a redes) em 2
>> ambientes diferentes porém similares, um está num server provido pela Sinco
>> (RJ) e outro num chassis Supermicro série 6k.
>> 
>> Taxas de interrupção sob controle, CPU Affinity em redes Intel chipset
>> 82575 variando de 2 a 4 queues (portanto cores/irqs) por CPU.
>> 
>> Recomendo o setup.
>> 
>> 
>> 
>> --
>> Patrick Tracanelli
>> 
>> FreeBSD Brasil LTDA.
>> Tel.: (31) 3516-0800
>> 316601 at sip.freebsdbrasil.com.br
>> http://www.freebsdbrasil.com.br
>> "Long live Hanin Elias, Kim Deal!"
>> 
>> --
>> gter list    https://eng.registro.br/mailman/listinfo/gter
>> 
> 
> Patrick, quantos pps no total e pela interface com a maior carga ?
> Qual a quantidade de interrupção da maquina no total/por interface ?
> 

Opa, desculpe a demora, o feriado chegou em seguida hehehe :P

A interface de maior carga da quase metade do provedor.

CPU Affinity esta assim:

cpuset -x 271 -l 4
cpuset -x 272 -l 5
cpuset -x 273 -l 6
cpuset -x 274 -l 7

Nem precisei ainda dar mais de 1 CPU por interrupt, então deixei o affinity 1:1 pra evitar troca de contexto.

Seguem informações, coletadas ha pouco, no pico (hora do almoço nesse provedor):

 # \rate -i igb4 -R -b
=> Currently 762.21 Mbps/142.82 kpps, Average: 769.21 Mbps/149.82 kpps
=> Currently 951.80 Mbps/188.62 kpps, Average: 851.98 Mbps/167.72 kpps
=> Currently 1143.75 Mbps/200.74 kpps, Average: 952.58 Mbps/182.06 kpps
=> Currently 752.86 Mbps/141.46 kpps, Average: 902.63 Mbps/172.16 kpps
=> Currently 951.10 Mbps/182.35 kpps, Average: 911.52 Mbps/172.39 kpps
=> Currently 761.27 Mbps/143.51 kpps, Average: 881.98 Mbps/162.91 kpps
=> Currently 764.21 Mbps/151.01 kpps, Average: 879.15 Mbps/162.64 kpps
=> Currently 712.50 Mbps/143.15 kpps, Average: 850.19 Mbps/161.33 kpps
=> Currently 921.39 Mbps/182.61 kpps, Average: 850.98 Mbps/161.58 kpps
=> Currently 721.01 Mbps/140.70 kpps, Average: 842.58 Mbps/162.39 kpps
=> Currently 748.43 Mbps/150.02 kpps, Average: 833.66 Mbps/162.27 kpps
=> Currently 756.77 Mbps/150.38 kpps, Average: 832.00 Mbps/162.19 kpps

Trecho relevando to top -PSH

   11 root          -92    -     0K   336K WAIT    4 725:36  12.59% intr{irq271: igb4:que}
   11 root          -92    -     0K   336K WAIT    6 602:16  16.49% intr{irq273: igb4:que}
   11 root          -92    -     0K   336K WAIT    5 585:57  19.49% intr{irq272: igb4:que}
   11 root          -92    -     0K   336K WAIT    7 588:37  21.10% intr{irq274: igb4:que}

# sysctl hw.ncpu
hw.ncpu: 8

# bgpctl s s | wc -l
      12

# bgpctl sh rib | wc -l
 1289363

# bgpctl sh rib mem
RDE memory statistics
    424659 IPv4 unicast network entries using 9.7M of memory
       276 IPv6 unicast network entries using 9.7K of memory
    849861 rib entries using 25.9M of memory
   2568514 prefix entries using 78.4M of memory
    412334 BGP path attribute entries using 29.9M of memory
    182298 BGP AS-PATH attribute entries using 7.0M of memory,
	   and holding 412334 references
      8051 BGP attributes entries using 189K of memory
	   and holding 88304 references
      8050 BGP attributes using 63.0K of memory
RIB using 151M of memory

# uptime
 9:27AM  up 96 days, 10:08, 1 user, load averages: 1.55, 1.50, 1.44

igb4: <Intel(R) PRO/1000 Network Connection version - 2.3.1> port 0x6020-0x603f mem 0xc6420000-0xc643ffff,0xc6200000-0xc63fffff,0xc6444000-0xc6447fff irq 19 at device 0.1 on pci21
igb4: Using MSIX interrupts with 5 vectors
igb4: Ethernet address: 00:1b:21:8e:d0:fb
igb4: Bound queue 0 to cpu 4
igb4: Bound queue 1 to cpu 5
igb4: Bound queue 2 to cpu 6
igb4: Bound queue 3 to cpu 7

Nenhuma interface passa de 200kpps, a soma de todas as interfaces (são 8). Fazendo uma soma de padeiro (visual, com o comando rate em cada interface) esta dando agora 1.1Mpps "forwarded" e 2.4Gbit/s de tráfego - são 2Gbit/s de Internet, 1.78Gbit/s em uso no momento, os outros 600Mbit/s é entre clientes e servidores (infra). Ou seja apesar deu ter dito que era 2Gbit/s esta dando mais nesse instante.

Dicas do que não fazer:

- Colocar essas mesmas rede em máquinas sem chipset MCH da Intel
- Colocar essas mesmas redes em PCI Express abaixo de x4 64bit
- Usar em modo MSI ao invés de MSI-X

Dicas do que fazer:

- Garantir hw.igb.enable_aim sempre 1;
- *Considerar kern.ipc.nmbclusters=51200 ou mais (sempre que tiver mais de uma igb);
- *Considere jogar hw.igb.rxd e hw.igb.txd pra 4096 se a carga for alta;
- Garantir hw.igb.enable_msix=1 sempre; se não funcionar como MSI-X e insistir em ficar em MSI, procure ajuda;

Dicas do "se precisar tunar":

- *hw.igb.num_queues por default vem automático, podendo te dar de 1, 2 ou 4 queues (e portanto threads), se sua taxa de interrupção subir muito considere aumentar o número de filas, pra poder usar mais CPUs, e faça CPU Affinity;
- Por padrão *hw.igb.max_interrupt_rate vale 8.000 ou seja até 8k interrupções por segundo; da pra baixar seguramente pra 1.000 e não ter mais de irrelevantes 4 milisegundos de latencia a mais por pacote, em um ambiente de grande carga, e diminuir 1/8 da sua taxa de interrupções;

No ambiente que eu colei os ouputs acima, marquei com * as possíveis otimizações que eu não precisei fazer ainda. Ou seja quando encontrar limites no ambiente atual, ainda tem onde espremer p/ tirar mais suco dessa laranja antes de achar que ja esta no bagaço.


> É o segundo que informa mais de 2Gbps sobre Softrouter.
> Outro foi o provedor Bogus que utiliza linux.

:-)

--
Patrick Tracanelli

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




More information about the gter mailing list