ASIC vs x86 routing / switching per scopi generici


14

Gli amministratori di sistema spesso cercano di convincermi che i sistemi operativi x86 per scopi generici possono funzionare allo stesso modo dei router con CPU a basso MHz e silicio dedicato (ovvero ASIC) con velocità di linea di 1 Gbps. Questo pensiero si sta trasferendo nel regno SDN come gli switch virtuali in VMWare.

Penso di comprendere intuitivamente le differenze tra i vantaggi degli ASIC rispetto a x86 nella gestione del traffico, in particolare per quanto riguarda i micro-scoppi. È corretto supporre che gli ASIC per le interfacce router o switch supereranno l'uso di una CPU x86 per tutta l' elaborazione dei pacchetti che risentiranno notevolmente degli interruzioni della CPU? So che il sistema operativo (Windows, Linux o specializzato) contribuisce notevolmente alle prestazioni dell'hardware per instradare o passare anche. E so che le velocità del bus x86 impongono i massimi teorici alla commutazione della larghezza di banda, specialmente quando le velocità superano 1 Gbps.

  1. In che modo la velocità di commutazione ASIC Catalyst 6500 Sup2T, ad esempio, si confronta con le velocità di commutazione realistiche x86 che si trovano su sistemi operativi o SDN generali?

  2. In che modo la velocità di commutazione di Cisco 7200VXR-NPE-G2, ad esempio, si confronta con la stessa ...

  3. Come si confrontano le latenze tipiche di router o switch rispetto ai sistemi operativi generali che svolgono la stessa funzione?

NOTA: non desidero ascoltare i vantaggi del posizionamento degli switch virtuali o il loro ruolo all'interno di una rete virtuale e fisica. Inoltre non voglio discutere i meriti di SDN per il time-to-deployment dell'applicazione.

Risposte:


19

È corretto supporre che gli ASIC per le interfacce router o switch supereranno l'uso di una CPU x86 per tutta l'elaborazione dei pacchetti che risentiranno notevolmente degli interruzioni della CPU?

È difficile dire specificamente se gli interrupt sono una limitazione, poiché non stiamo nominando CPU, sistemi operativi o modelli di router specifici in questa parte della tua domanda. Nel complesso, è una generalizzazione sicura che le CPU per scopi generici non possono toccare le prestazioni di commutazione dei pacchetti di un ASIC ben progettato. Quando dico prestazioni, sto parlando di metriche RFC 2544 , come la velocità di inoltro dei pacchetti al secondo (NDR), la velocità effettiva e la latenza.

Questo non vuol dire che non c'è posto per un router basato su CPU; solo che le nostre esperienze di vita ci dicono che una CPU non può cambiare i pacchetti così rapidamente come un ASIC o FPGA. Le mie conclusioni sul fatto che ASIC / FPGA siano più veloci di una CPU multi-core sembrano essere rafforzate da queste domande e risposte su Electronics.SE .

Prestazioni del bus PCI

So che le velocità del bus x86 impongono i massimi teorici alla commutazione della larghezza di banda, specialmente quando le velocità superano 1 Gbps.

Non sono sicuro a quali restrizioni di autobus ti riferisci qui, ma le informazioni che hai potrebbero essere in qualche modo obsolete. Al giorno d'oggi il bus PCI Express utilizzato nella maggior parte dei sistemi è ben al di sopra dei 10 Gbps.

PCIe 2.0 utilizza uno schema di codifica 8b / 10b che lo penalizza di circa il 20% per l'overhead di codifica della corsia PCI; prima di quella penalità di codifica, PCIe 2.0 offre 4 Gbps di larghezza di banda grezza per corsia. Tuttavia, anche con una penalità del 20% 8b / 10b, PCIe 2.0 x8 (8 corsie PCIe) sporge di oltre 25 Gbps; in questo modo è possibile eseguire facilmente un singolo adattatore 10GE a velocità di linea bidirezionale su una scheda PCIe 2.0 x8.

PCIe 3.0 (utilizzato nei chipset Intel Ivy Bridge) utilizza la codifica 128b / 130b, che migliora notevolmente l'efficienza del bus PCI e raddoppia la larghezza di banda per corsia. Quindi una scheda PCIe 3.0 x8 potrebbe fornire 63 Gbps (8.0 * 8 * 128/132). Non c'è nulla da starnutire; puoi impacchettare in sicurezza due 10GE a velocità di linea su un singolo montante con tali tassi di prestazione.

Prestazioni Cisco vs Vyatta

Avvertenza: sto usando materiale di marketing fornito dal fornitore per tutti i confronti ...

  1. In che modo la velocità di commutazione ASIC Catalyst 6500 Sup2T, ad esempio, si confronta con le velocità di commutazione realistiche x86 che si trovano su sistemi operativi o SDN generali?

Questo è un po 'impegnativo perché confronteremo un sistema di commutazione completamente distribuito (Sup2T) con un sistema di commutazione centralizzata (Vyatta), quindi fai attenzione a interpretare i risultati.

  • Sup2T può inoltrare fino a 60Mpps con velocità senza drop con funzionalità abilitate . Riferimento: White paper sull'architettura Catalyst 6500 Sup2T . Si noti che questo è solo un sistema Sup2T nudo senza DFC (Distributed Forwarding Cards). Nota 1
  • Ho trovato i risultati dei test RFC 2544 per l'inoltro di Vyatta 5600 fino a una velocità di non caduta di 20,58 Mpps e 70 Mpps se è possibile accettare alcune cadute. Il throughput NDR era di 72 Gbps. Riferimento: Vyatta 5600 vRouter Performance Test (SDN Central) . Per visualizzare il rapporto completo è necessaria la registrazione SDN Central.
  1. In che modo la velocità di commutazione di Cisco 7200VXR-NPE-G2, ad esempio, si confronta con la stessa ...

Il Vyatta lancia un NPE-G2 fuori dall'acqua, dal punto di vista delle prestazioni; l'NPE-G2 può fare fino a 2Mpps in base al foglio dati Cisco NPE-G2 . Questo non è davvero un paragone equo, nonostante l'età di NPE-G2, rispetto a un nuovissimo sistema Intel 10-Core ricco di schede 10GE.

Come si confrontano le latenze tipiche di router o switch rispetto ai sistemi operativi generali che svolgono la stessa funzione?

Questa è una domanda fantastica. Questo documento indica che Vyatta ha latenze più elevate, ma mi piacerebbe vedere questo tipo di test fatto contro le CPU della serie Intel E5.

Sommario

Riepilogo di un confronto fianco a fianco tra Sup2T e Brocade Vyatta 5600:

  • Sup2T: IPDR 4 NDR 60Mpps con funzionalità (come ACL)
  • Vyatta e Intel E5: fino a 20Mpps IPv4 NDR senza funzionalità o 70Mpps se puoi accettare un numero ridotto di drop.

La Sup2T vince ancora secondo me, in particolare quando guardi cosa ottieni con la Sup2T (scala distribuita a 720Mpps, MPLS, innumerevoli MIB, commutazione Layer2 e Layer3, ecc ...).

Se tutto ciò che ti interessa sono le prestazioni di commutazione non elaborate, puoi ottenere numeri di prestazioni rispettabili da una CPU x86. Tuttavia, nelle reti reali, spesso non si tratta solo di chi ha i migliori numeri di drag-race; la maggior parte delle persone deve preoccuparsi delle funzionalità (vedi: Quando devo concentrarmi su ciascun valore per la valutazione dell'interruttore? ). Un grande fattore da considerare è il numero di funzionalità disponibili e il modo in cui si integrano con il resto della rete.

Vale anche la pena esaminare la fattibilità operativa dell'utilizzo di sistemi basati su x86 nella propria azienda. Non ho usato Brocade + Vyatta da solo, ma potevano fare un lavoro decente costruendo buoni comandi per lo spettacolo e supportando gli hook nella scatola. Se effettivamente supportano abbastanza funzionalità e il loro sistema si adatta bene nelle reti reali , allora provaci se è quello che ti piace.

Tuttavia, se qualcuno va a buon mercato e costruisce solo un box Linux + bird/ quagga+ ACLs + qos, non vorrei essere il ragazzo che supporta quella soluzione. Ho sempre sostenuto che la comunità open source fa un ottimo lavoro innovando, ma la sostenibilità dei loro sistemi impallidisce rispetto ai principali fornitori di rete (Arista / Cisco / Force10 / Juniper). Basta guardare iptablese tcvedere quanto è complicato fare una CLI. Occasionalmente rispondo alle domande di persone che guardano all'output di ip link showo ifconfigche vengono cancellate perché i contatori di pacchetti non sono corretti; in genere i principali fornitori di rete fanno un lavoro molto migliore testando i loro contatori, rispetto a quello che vedo nei driver NIC di Linux.


Note finali :

Nota 1 Nessuno a cui importa delle prestazioni acquisterebbe mai un Sup2T e non riuscirebbe a popolare il telaio con DFC. Il Sup2T può passare a 60Mpps, ma uno chassis caricato con DFC scala a 720Mpps.

Nota 2 Il test Vyatta è stato eseguito su Intel E5-2670v2 a doppio processore e 10 core a 2,5 Ghz per core; se contiamo un singolo core come due core virtuali (cioè hyper-threading), si tratta di un totale di 40 core per la commutazione di pacchetti. Vyatta è stato configurato con schede NIC Intel x520-DA2 e ha utilizzato Brocade Vyatta versione 3.2.


1
Sai quali erano le dimensioni del telaio in quelle figure? Il sommario esecutivo del Vyatta afferma che hanno raggiunto 70Mpps con frame 64B; è la stessa dimensione del frame utilizzata nei test Sup2T?
Ryan Foley,

0

La serie 7200 viene deprecata a favore della serie ASR perché non è in grado di gestire la commutazione multi-gigabit a velocità di linea. I catalizzatori e gli switch Nexus hanno un vantaggio di inoltro rispetto a un processore generico se la commutazione di pacchetto rimane in silicio. Se il traffico deve essere commutato (cioè deve essere valutato sulla CPU anziché nell'ASIC / FPGA), il throughput precipita e la latenza aumenta. Per questo motivo, se è necessaria una commutazione a throughput elevato, si separa il piano di inoltro dal piano di routing e si ottimizza per mantenere il maggior numero possibile di commutazione nel silicio.

In alcuni casi, vedrai il silicio di commutazione per usi speciali sposato con un processore per uso generale (come gli switch white box destinati a utilizzare Big Switch o altri SDN per top-of-rack, distribuzione o overlay) e, in questi casi, puoi vedere il meglio di tutti i mondi (alta produttività, commutazione a bassa latenza; elaborazione ad alta potenza per la determinazione di percorsi e politiche; integrazione con quadri di gestione come Puppet o Chef).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.