[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 -03 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