假设路由器或交换机接口的 ASIC 将胜过使用 x86 CPU 来处理所有将受到 CPU 中断影响的数据包处理,这是否正确?
很难具体说中断是否是一种限制,因为在您的问题的这一部分中,我们没有指定特定的 CPU、操作系统或路由器型号。总体而言,通用 CPU 无法达到精心设计的 ASIC 的数据包交换性能,这是一个安全的概括。当我说性能时,我指的是RFC 2544指标,例如每秒无丢包转发率 (NDR)、吞吐量和延迟。
这并不是说基于 CPU 的路由器没有位置;只是我们的生活经验告诉我们,CPU 无法像 ASIC 或 FPGA 那样快速地交换数据包。Electronics.SE 上的这个问答似乎强化了我关于 ASIC/FPGA 比多核 CPU 更快的结论。
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)。这没什么好打喷嚏的;您可以安全地将两个线速 10GE 安装在具有这些性能的单个提升器上。
Cisco 与 Vyatta 的性能
警告:我正在使用供应商提供的营销材料进行所有比较......
- 例如,Catalyst 6500 Sup2T ASIC 交换速度与通用操作系统或 SDN 上的实际 x86 交换速度相比如何?
这有点具有挑战性,因为我们要将完全分布式交换系统 (Sup2T) 与集中交换系统 (Vyatta) 进行比较,因此请仔细解释结果。
- 例如,Cisco 7200VXR-NPE-G2 的交换速度与相同...
在性能方面,Vyatta 将 NPE-G2 吹出水面;根据Cisco NPE-G2 数据表,NPE-G2 最高可达 2Mpps 。尽管考虑到 NPE-G2 与配备 10GE 卡的全新英特尔 10 核系统的年龄,这并不是一个真正公平的比较。
与执行相同功能的一般操作系统相比,典型的路由器或交换机延迟如何?
这是一个绝妙的问题。这篇论文表明 Vyatta 具有更高的延迟,但我希望看到针对 Intel E5 系列 CPU 进行的此类测试。
概括
回顾 Sup2T 与 Brocade Vyatta 5600 的并排比较:
- Sup2T:具有功能(例如 ACL)的 60Mpps NDR IPv4
- Vyatta 和 Intel E5:最高 20Mpps IPv4 NDR(无功能),或 70Mpps(如果您可以接受少量丢弃)。
在我看来,Sup2T 仍然胜出,尤其是当您查看 Sup2T 所获得的收益时(分布式扩展到 720Mpps、MPLS、无数 MIB、第 2 层和第 3 层交换等……)。
如果您只关心原始切换性能,那么您可以从 x86 CPU 获得可观的性能数据。然而,在真实的网络中,通常不只是关于谁拥有最好的飙车数据;大多数人需要担心功能(请参阅:我应该什么时候关注开关评估的每个值?)。需要考虑的一个重要因素是可用功能的数量,以及它们如何与网络的其余部分集成。
还值得研究在您的公司中使用基于 x86 的系统的操作可行性。我自己没有使用过 Brocade + Vyatta,但是他们可以很好地将良好的显示命令和支持挂钩构建到盒子中。如果他们确实支持足够多的功能,并且他们的系统在实际网络中的扩展性很好,那么如果你喜欢的话,那就去吧。
但是,如果有人不惜代价而只是构建了一个 linux box + bird
/ quagga
+ ACLs + qos,我不想成为支持该解决方案的人。我一直认为开源社区在创新方面做得很好,但与主流网络供应商(Arista / Cisco / Force10 / Juniper)相比,他们系统的可支持性相形见绌。人们只需要查看iptables
并tc
了解您可以制作 CLI 的复杂程度。我偶尔会收到一些人的问题,他们查看ip link show
or的输出ifconfig
并因为数据包计数器不正确而感到困惑;与我在 linux NIC 驱动程序中看到的相比,主要网络供应商通常在测试他们的计数器方面做得更好。
尾注:
注 1任何关心性能的人都不会购买 Sup2T 并且未能在机箱中安装 DFC。Sup2T 可以以 60Mpps 的速度切换,但带有 DFC 的负载机箱可扩展到 720Mpps。
注 2 Vyatta 测试在双处理器、10 核 Intel E5-2670v2 上以每核 2.5Ghz 运行;如果我们将单个内核计算为两个虚拟内核(即超线程),则总共有 40 个用于数据包交换的内核。Vyatta 配置了 Intel x520-DA2 NIC,并使用了 Brocade Vyatta 3.2 版。