ASICs x roteamento / comutação de uso geral x86


14

Os SysAdmins geralmente tentam me convencer de que os sistemas operacionais de uso geral x86 podem funcionar tão bem quanto os roteadores com CPUs de baixo MHz e silício dedicado (ou seja, ASICs) a taxas de linha de 1 Gbps. Esse pensamento está sendo transferido para o domínio SDN, como comutadores virtuais no VMWare.

Acho que compreendo intuitivamente as diferenças entre os benefícios dos ASICs x x86 no manuseio do tráfego, particularmente no que diz respeito aos micro-explosões. É correto supor que os ASICs para interfaces de roteador ou switch superem o uso de uma CPU x86 para todo o processamento de pacotes que sofrerá muito com as interrupções da CPU? Sei que o sistema operacional (Windows, Linux ou especializado) contribui muito para o desempenho do hardware para rotear ou alternar também. E eu sei que as velocidades de barramento x86 impõem máximos teóricos à mudança de largura de banda, especialmente quando as taxas excedem 1Gbps.

  1. Como a velocidade de comutação Catalyst 6500 Sup2T ASIC, por exemplo, se compara às velocidades realísticas de comutação x86 encontradas em sistemas operacionais ou SDNs gerais?

  2. Como a velocidade de comutação Cisco 7200VXR-NPE-G2, por exemplo, se compara à mesma ...

  3. Como as latências típicas de roteador ou comutador se comparam aos sistemas operacionais gerais que executam a mesma função?

NOTA: Não quero ouvir os méritos do posicionamento do comutador virtual ou sua função em uma rede virtual e física. Também não quero debater os méritos do SDN para o tempo de implantação do aplicativo.

Respostas:


19

É correto supor que os ASICs para interfaces de roteador ou switch superem o uso de uma CPU x86 para todo o processamento de pacotes que sofrerá muito com as interrupções da CPU?

É difícil dizer especificamente se as interrupções são uma limitação, pois não estamos nomeando modelos específicos de CPU, sistema operacional ou roteador nesta parte da sua pergunta. No geral, é uma generalização segura de que as CPUs de uso geral não podem afetar o desempenho de comutação de pacotes de um ASIC bem projetado. Quando digo desempenho, estou falando de métricas da RFC 2544 , como NDR (taxa de encaminhamento de pacotes por segundo sem queda), taxa de transferência e latência.

Isso não quer dizer que não haja lugar para um roteador baseado em CPU; apenas que nossas experiências de vida nos dizem que uma CPU não pode alternar pacotes tão rapidamente quanto um ASIC ou FPGA. Minha conclusão sobre os ASICs / FPGAs serem mais rápidos que uma CPU multi-core parece ser reforçada por essas perguntas e respostas no Electronics.SE .

Desempenho do barramento PCI

Eu sei que as velocidades de barramento x86 impõem máximos teóricos à comutação de largura de banda, especialmente quando as taxas excedem 1Gbps.

Não tenho certeza a quais restrições de ônibus você está se referindo aqui, mas as informações que você possui podem estar um pouco desatualizadas. O barramento PCI Express usado na maioria dos sistemas escala bem acima de 10 Gbps atualmente.

O PCIe 2.0 usa um esquema de codificação 8b / 10b que penaliza aproximadamente 20% pela sobrecarga de codificação da faixa PCI; antes dessa penalidade de codificação, o PCIe 2.0 fornece 4Gbps de largura de banda bruta por faixa. No entanto, mesmo com a penalidade de 20% 8b / 10b, o PCIe 2.0 x8 (8 pistas PCIe) atinge mais de 25Gbps; portanto, você pode executar facilmente um único adaptador 10GE na taxa de linha bidirecional em uma placa PCIe 2.0 x8.

O PCIe 3.0 (usado nos chipsets Intel Ivy Bridge) usa a codificação 128b / 130b, o que melhora bastante a eficiência do barramento PCI e dobra a largura de banda por faixa. Assim, uma placa PCIe 3.0 x8 poderia fornecer 63Gbps (8.0 * 8 * 128/132). Isso não é nada para espirrar; você pode embalar com segurança dois 10GEs de taxa de linha em um único riser com essas taxas de desempenho.

Desempenho do Cisco vs Vyatta

Advertência: estou usando material de marketing fornecido pelo fornecedor para todas as comparações ...

  1. Como a velocidade de comutação Catalyst 6500 Sup2T ASIC, por exemplo, se compara às velocidades realísticas de comutação x86 encontradas em sistemas operacionais ou SDNs gerais?

Isso é um pouco desafiador, porque vamos comparar um sistema de comutação totalmente distribuído (Sup2T) com um sistema de comutação centralizada (Vyatta), portanto, tenha cuidado ao interpretar os resultados.

  • O Sup2T pode encaminhar a uma taxa non-drop de até 60Mpps com os recursos ativados . Referência: white paper da arquitetura Catalyst 6500 Sup2T . Observe que este é apenas um sistema Sup2T vazio, sem DFC (Distributed Forwarding Cards). Nota 1
  • Encontrei os resultados do teste RFC 2544 para o encaminhamento do Vyatta 5600 com taxa de não-queda de até 20,58Mpps e 70Mpps se você puder aceitar algumas quedas. A taxa de transferência de NDR era de 72 Gbps. Referência: Teste de desempenho do vyatta 5600 vRouter (SDN Central) . O registro do SDN Central é necessário para ver o relatório completo.
  1. Como a velocidade de comutação Cisco 7200VXR-NPE-G2, por exemplo, se compara à mesma ...

O Vyatta sopra um NPE-G2 fora da água, em termos de desempenho; o NPE-G2 pode executar até 2 Mbps com base na folha de dados do Cisco NPE-G2 . Mas essa não é uma comparação justa, dada a idade do NPE-G2, em comparação com um novo sistema Intel 10-Core, equipado com placas 10GE.

Como as latências típicas de roteador ou comutador se comparam aos sistemas operacionais gerais que executam a mesma função?

Essa é uma pergunta fantástica. Este documento indica que o Vyatta possui latências mais altas, mas eu gostaria que esse tipo de teste fosse feito com os processadores da série Intel E5.

Sumário

Resumo de uma comparação lado a lado do Sup2T vs o Brocade Vyatta 5600:

  • Sup2T: NDR IPv4 de 60Mpps com recursos (como ACLs)
  • Vyatta e Intel E5: NDR IPv4 de até 20Mpps sem recursos ou 70Mpps se você puder aceitar um pequeno número de quedas.

O Sup2T ainda vence na minha opinião, principalmente quando você olha para o que obtém com o Sup2T (escala distribuída para 720Mpps, MPLS, inúmeros MIBs, comutação Layer2 e Layer3, etc ...).

Se tudo o que importa é o desempenho bruto da comutação, é possível obter números de desempenho respeitáveis ​​em uma CPU x86. No entanto, em redes reais, muitas vezes não se trata apenas de quem tem os melhores números de corrida de arrancada; a maioria das pessoas precisa se preocupar com os recursos (consulte: Quando devo me concentrar em cada valor para a avaliação do switch? ). Um grande fator a considerar é o número de recursos disponíveis e como eles se integram ao restante da sua rede.

Também vale a pena examinar a viabilidade operacional do uso de sistemas baseados em x86 em sua empresa. Eu não usei o Brocade + Vyatta, mas eles poderiam fazer um trabalho decente criando bons comandos show e apoiando ganchos na caixa. Se eles realmente oferecem suporte a recursos suficientes e o sistema deles se adapta bem a redes reais , tente se é isso que você gosta.

No entanto, se alguém ficar barato e apenas criar uma caixa de linux + bird/ quagga+ ACLs + qos, eu não gostaria de ser o cara que suporta essa solução. Sempre afirmei que a comunidade de código aberto faz um excelente trabalho de inovação, mas a capacidade de suporte de seus sistemas empalidece quando comparada com os principais fornecedores de rede (Arista / Cisco / Force10 / Juniper). É preciso apenas olhar iptablese tcver o quão complicado você pode criar uma CLI. Ocasionalmente, respondo a perguntas de pessoas que olham para a saída ip link showou ifconfigficam fora do controle porque os contadores de pacotes não estão certos; normalmente, os principais fornecedores de rede fazem um trabalho muito melhor testando seus contadores, em comparação com o que vejo nos drivers da NIC Linux.


Notas finais :

Nota 1 Ninguém que se preocupa com o desempenho jamais compraria um Sup2T e deixaria de preencher o chassi com DFCs. O Sup2T pode alternar a 60Mpps, mas um chassi carregado com DFCs aumenta para 720Mpps.

Nota 2 O teste Vyatta foi executado no Intel E5-2670v2 de 10 núcleos e processador duplo, a 2,5 Ghz por núcleo; se contarmos um único núcleo como dois núcleos virtuais (ou seja, hyperthreading), isso significa um total de 40 núcleos para comutação de pacotes. O Vyatta foi configurado com as placas de rede Intel x520-DA2 e usou o Brocade Vyatta versão 3.2.


1
Você sabia quais eram os tamanhos dos quadros nessas figuras? O resumo executivo do Vyatta disse que eles atingiram 70Mpps com quadros de 64B; é o mesmo tamanho de quadro usado nos testes Sup2T?
Ryan Foley

0

A série 7200 está sendo preterida em favor da série ASR porque eles não podem lidar com comutação de vários gigabits de taxa de linha. Os switches Catalyst e Nexus têm uma vantagem de encaminhamento em relação a um processador de uso geral SE a troca de pacotes permanecer em silício. Se o tráfego tiver que ser alternado por processo (ou seja, ele deve ser avaliado na CPU em vez de no ASIC / FPGA), sua taxa de transferência cai e a latência aumenta. Por esse motivo, se você precisar de comutação de alta taxa de transferência, separe o plano de encaminhamento do plano de roteamento e otimize para manter o máximo possível de sua comutação em silício.

Em alguns casos, você verá silício de comutação para fins especiais casado com um processador de uso geral (como os comutadores de caixa branca destinados a usar o Big Switch ou outro SDN para o topo do rack, distribuição ou sobreposição) e, nesses casos, você pode ver o melhor de todos os mundos (alta produtividade, comutação de baixa latência; processamento de alta potência para determinação de rotas e políticas; integração com estruturas de gerenciamento como Puppet ou Chef).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.