[MASOCH-L] RES: Placa de rede PCI-Express em Linux
Henrique de Moraes Holschuh
henrique.holschuh at ima.sp.gov.br
Tue Jan 11 09:15:20 -03 2011
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
> px?refid=nic_broadcom_5708_toe&cs=brbsdt1&s=bsd
>
> Abaixo com chipset Intel
> http://www.waz.com.br/_produtos/?p=89891
> http://www.waz.com.br/_produtos/?p=92946
>
> 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 <hmh at ima.sp.gov.br>
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.
More information about the masoch-l
mailing list