라우터 또는 스위치 인터페이스 용 ASIC가 CPU 인터럽트로 인해 크게 고통을받는 모든 패킷 처리에 x86 CPU를 사용하는 것보다 성능이 우수하다고 가정하는 것이 맞습니까?
질문 의이 부분에서 특정 CPU, 운영 체제 또는 라우터 모델의 이름을 지정하지 않기 때문에 인터럽트가 제한적인지 여부를 구체적으로 말하기는 어렵습니다. 전반적으로 범용 CPU가 잘 설계된 ASIC의 패킷 전환 성능을 건드릴 수 없다는 것이 안전한 일반화입니다. 성능을 말할 때, NDR (No-Drop Packets per Seconding Forwarding Rate), 처리량 및 대기 시간과 같은 RFC 2544 메트릭 에 대해 이야기 하고 있습니다.
CPU 기반 라우터를위한 장소가 없다고 말하는 것은 아닙니다. 우리의 인생 경험에 따르면 CPU가 ASIC 또는 FPGA만큼 빠르게 패킷을 전환 할 수 없다는 것을 알 수 있습니다. ASIC / FPGA가 멀티 코어 CPU보다 빠르다는 결론은 Electronics.SE의이 Q & A에 의해 강화 된 것으로 보입니다 .
PCI 버스 성능
x86 버스 속도가 속도가 1Gbps를 초과하면 이론적으로 최대 대역폭을 스위칭 대역폭에 적용한다는 것을 알고 있습니다.
여기에서 어떤 버스 제한을 참조하는지 잘 모르겠지만 정보가 다소 구식 일 수 있습니다. 오늘날 대부분의 시스템에서 사용되는 PCI Express 버스는 10Gbps 이상으로 확장됩니다.
PCIe 2.0 은 8b / 10b 인코딩 체계를 사용하여 PCI 레인 인코딩 오버 헤드에 대해 약 20 %의 벌칙을 부과했습니다. 인코딩 페널티 이전에 PCIe 2.0 은 레인 당 4Gbps의 원시 대역폭을 제공합니다. 그러나 20 % 8b / 10b의 페널티에도 불구하고 PCIe 2.0 x8 (8 개의 PCIe 레인)은 25Gbps 이상을 압박합니다. 따라서 PCIe 2.0 x8 카드의 양방향 회선 속도로 단일 10GE 어댑터를 쉽게 실행할 수 있습니다.
PCIe 3.0 (Intel Ivy Bridge 칩셋에서 사용)은 128b / 130b 인코딩을 사용하여 PCI 버스 효율성을 크게 향상시키고 레인 당 대역폭을 두 배로 늘립니다. 따라서 PCIe 3.0 x8 카드는 63Gbps (8.0 * 8 * 128 / 132)를 제공 할 수 있습니다. 재채기를 할 것이 없습니다. 이러한 성능 속도로 단일 라이저에 2 개의 라인 속도 10GE를 안전하게 포장 할 수 있습니다.
Cisco vs Vyatta 성능
경고 : 나는 모든 비교에 공급 업체가 제공하는 마케팅 자료를 사용하고 있습니다 ...
- 예를 들어 Catalyst 6500 Sup2T ASIC 스위칭 속도는 일반적인 OS 또는 SDN에서 볼 수있는 현실적인 x86 스위칭 속도와 어떻게 비교됩니까?
완전 분산 형 스위칭 시스템 (Sup2T)과 중앙 집중식 스위칭 시스템 (Vyatta)을 비교하기 때문에 약간 까다롭기 때문에 결과를 신중하게 해석해야합니다.
- Sup2T는 기능이 활성화 된 상태 에서 최대 60Mpps 비 드롭 속도 로 전달할 수 있습니다 . 참조 : Catalyst 6500 Sup2T 아키텍처 백서 . 이것은 분산 포워딩 카드 (DFC)가없는 단순한 Sup2T 시스템입니다. 참고 1
- Vyatta 5600 포워딩에 대해 최대 20.58Mpps의 비 드롭 속도 및 일부 드롭을 수락 할 수있는 경우 70Mpps에 대한 RFC 2544 테스트 결과를 찾았습니다. NDR 처리량은 72Gbps입니다. 참조 : Vyatta 5600 vRouter 성능 테스트 (SDN Central) . 전체 보고서를 보려면 SDN Central 등록이 필요합니다.
- 예를 들어 Cisco 7200VXR-NPE-G2 스위칭 속도는 어떻게 동일합니까?
Vyatta는 성능 측면에서 NPE-G2를 물 밖으로 불어냅니다. NPE-G2는 Cisco NPE-G2 데이터 시트를 기반으로 최대 2Mpps를 수행 할 수 있습니다 . NPE-G2의 시대와 10GE 카드가 들어있는 새로운 인텔 10 코어 시스템을 고려할 때 이것은 실제로 공정한 비교가 아닙니다.
일반적인 라우터 또는 스위치 대기 시간은 동일한 기능을 수행하는 일반 OS와 비교하면 어떻습니까?
환상적인 질문입니다. 이 백서 에서는 Vyatta의 지연 시간이 더 길지만 Intel E5 시리즈 CPU에 대해 이러한 종류의 테스트를 수행하고 싶습니다.
요약
Sup2T와 Brocade Vyatta 5600의 단계별 비교 요약 :
- Sup2T : 60Mpps NDR IPv4 기능 (예 : ACL)
- Vyatta 및 Intel E5 : 기능없이 최대 20Mpps IPv4 NDR 또는 적은 수의 드롭을 수락 할 수있는 경우 70Mpps.
Sup2T는 720Mpps, MPLS, 무수한 MIB, Layer2 및 Layer3 스위칭 등과 같은 Sup2T로 얻은 것을 볼 때 여전히 제 의견으로는 승리합니다.
관심있는 모든 것이 원시 스위칭 성능이라면 x86 CPU에서 상당한 성능 수치를 얻을 수 있습니다. 그러나 실제 네트워크에서는 누가 최고의 드래그 레이스 번호를 갖는지가 아닙니다. 대부분의 사람들 은 기능에 대해 걱정해야합니다 ( 스위치 평가를 위해 각 값에 언제 집중해야합니까? 참조 ). 고려해야 할 가장 큰 요소는 사용 가능한 기능의 수와 나머지 네트워크와의 통합 방법입니다.
회사에서 x86 기반 시스템을 사용할 수있는 운영 가능성도 살펴볼 가치가 있습니다. Brocade + Vyatta를 직접 사용하지는 않았지만 훌륭한 쇼 명령을 작성하고 상자에 고리를 지원하는 적절한 작업을 수행 할 수 있습니다. 그들이 실제로 충분한 기능을 지원하고 시스템이 실제 네트워크 에서 잘 확장 된다면, 당신이 원한다면 그것을 찾으십시오.
그러나 누군가가 싸서 리눅스 상자 + bird
/ quagga
+ ACLs + qos를 빌드하면 그 솔루션을 지원하는 사람이되고 싶지 않습니다. 필자는 오픈 소스 커뮤니티가 혁신을 이루는 데 큰 도움이되었지만, 주류 네트워크 벤더 (Arista / Cisco / Force10 / Juniper)와 비교할 때 시스템의 지원 가능성이 떨어졌다. 하나의 요구에만보고 iptables
하고 tc
당신은 CLI를 만들 수 있습니다 얼마나 뒤얽힌 볼 수 있습니다. 나는 때때로 패킷 카운터가 옳지 않기 때문에 결과를 ip link show
보거나 ifconfig
사로 잡는 사람들로부터 질문을 받는다. 일반적으로 주요 네트워크 공급 업체는 Linux NIC 드라이버에서 볼 수있는 것보다 카운터 테스트를 훨씬 잘 수행합니다.
최종 노트 :
참고 1 성능에 관심이있는 사람은 Sup2T를 구매하여 섀시에 DFC를 채우지 못할 것입니다. Sup2T는 60Mpps로 전환 할 수 있지만 DFC가 장착 된 섀시는 720Mpps로 확장됩니다.
참고 2 Vyatta 테스트는 코어 당 2.5Ghz로 듀얼 프로세서, 10 코어 Intel E5-2670v2에서 실행되었습니다. 단일 코어를 두 개의 가상 코어 (예 : 하이퍼 스레딩)로 계산하면 패킷 교환을위한 총 40 개의 코어입니다. Vyatta는 Intel x520-DA2 NIC로 구성되었으며 Brocade Vyatta 버전 3.2를 사용했습니다.