[MASOCH-L] RES: Placa de rede PCI-Express em Linux

Rafael M. Koike r.koike at terra.com.br
Tue Jan 11 15:53:24 BRST 2011


 Excelente explicação.
 Só complementando a escolha do design de memórias tambem é
crucial, já que toda tabela de roteamento vai ficar lá e latencia é
algo muito importante.
 Para Core i7 (1366) a utlização de Tri-channel com memórias
1600Mhz ou superior e latencias CL8
 No caso de Xeon, i5/i7 (1533) a utilização de Dual-Channel com
1333Mhz ou superior e latencias baixas tambem.
 Tecnologia NUMA deve ser muito interessante mas será que é melhor
que SMP neste xontexto de fastswitching/routing?
 Queria saber se algum colega da lista já implementou uma solução
NUMA em backbones de rede e se consegue fazer algum comparativo com
SMP.
 Abraços,
 Rafael M. Koike
 On Ter 11/01/11 09:15 , Henrique de Moraes Holschuh
henrique.holschuh at ima.sp.gov.br sent:
 On 10-01-2011 20:04, Rafael M. Koike wrote:
 > A própria DELL vende placas PCI-E com chipset broadcom
 >
http://www1.la.dell.com/br/pt/empresa/Networking/nic_broadcom_5708_toe/pd.as
[1]
 > px?refid=nic_broadcom_5708_toe&cs=brbsdt1&s=bsd
 >
 > Abaixo com chipset Intel
 > http://www.waz.com.br/_produtos/?p=89891 [2]
 > http://www.waz.com.br/_produtos/?p=92946 [3]
 >
 > Mas vale lembrar que alem do chipset da placa que pode fazer muita
coisa via
 > hardware deixando a CPU mais livre para fazer outras tarefas temos
também a
 > velocidade do barramento PCI-Express que vai de 1x a 16x e isso
impacta no
 > througput entre interface PCI-E e cpu/memória (Vai dar diferença
de
 > performance)
 Se você vai prestar atenção nisso, as regras são as seguintes:
 1. Placa de rede gigabit Intel ET dual, ou ET2 quad, ou as placas
     10G mais novas da Intel.  As placas devem possuir no mínimo 16
filas
     TX/RX para gigabit, e 256 filas TX/RX para 10Gbit.
 2. PCIe do MCH ou CPU (nunca use as PCIe do IOH).  Precisa conhecer
a
     topologia da placa mãe e escolher a placa mãe certa (está no
manual
     da placa mãe).
 3. MSI-X ativo e funcional, todas as acelerações de rede ativas,
suporte
     muiltiqueue e de RX/TX steering ativo e configurado (kernel
2.6.36+).
 4. Nunca virtualizar via Xen/KVM.  Utilizar SR-IOV (o NIC funciona
como
     uma switch) e network namespaces (Linux containers/lxc) com
veth.  A
     diferença de performance é de 5x a 20x.
 5. Utilizar Xeon X5550/X5650+ (ou alguns Core i5/i7 bem
específicos).
     No caso dos Xeon, se possuir mais de um processador, lembrar que
é
     NUMA e isso IMPLICA em fazer toda a configuração de memória,
     interrupt e application pinning para manter as interrupções e
acesso
     a memória local a cada processador.  Placas que prestam vão
ter duas
     northbridges, cada uma ligada a um processador via QPI.  Isso
também
     deve ser levado em conta na escolha dos slots PCIe para os NIC,
e
     no pinning.
 6. Desativar qualquer política de QoS e shaper que não seja
multiqueue
     (acho que vai sobrar só o PRIO e SFQ).  Reduzir o tamanho da
fila
     dos NICs para algo mais decente, para manter a latência sob
controle.
 7. Remover suporte a ebtables e qualquer outra porcaria que fique no
     caminho dos pacotes.  Quanto menos iptables, melhor.  O certo é
     remover o suporte iptables se puder.
 8. Configurar o kernel para manter muita memória *livre* (e não
como
     cache ou buffer), aumentar o tamanho da tabela de rotas, etc.
 Com isso um servidor dual X5550 com memórias rápidas roteia cerca
de
 20Gbps em pacotes médios.  O limite é, e vai continuar sendo,
PPS...
 Chega a 1.5Mpps sem muita dor.  Mais que isso, precisa de bastante 
 cuidado trabalho (mas é possível, se o TX/RX steering estiver 
 funcionando e existirem fluxos e cores suficientes).
 Com pacotes maiores e muitos fluxos, chega aos 40Gbps.
 -- 
 Henrique de Moraes Holschuh 
 IM@ - Informática de Municípios Associados
 Engenharia de Telecomunicações
 TEL +55-19-3755-6555/CEL +55-19-9293-9464
 Antes de imprimir, lembre-se de seu compromisso com o Meio Ambiente
 e do custo que você pode evitar.
 __
 masoch-l list
 https://eng.registro.br/mailman/listinfo/masoch-l [5]


More information about the masoch-l mailing list