《给力吧,x86》专题连载五:网络通信硬件平台巡览•G41篇

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




子曰:工欲善其事,必先利其器。在上一期连载中,我们介绍了新兴的网络通信平台评估软件NCPBench。从本期开始,我们将陆续测试一批网络通信硬件平台,看看在优秀系统软件的支撑下,x86架构究竟有着怎样的性能,以及不同硬件配置对网络处理能力造成的影响。

价格不是最高也不是最低,规格不前卫但也不落伍,这就是G41,我们今天的主角,英特尔嵌入式产品线中在网络通信市场上拼杀的绝对主力。而它的载体,是台湾伯昇科技股份有限公司推出的一款网络通信硬件平台,代号NSP-1096。这款产品采用1U规格设计,前面板提供了6个千兆电口、2个USB 2.0接口和一个9针串口。接口左侧设有附带按钮的液晶屏,右侧空间则留给了扩展槽位。伯昇科技为NSP-1096准备了多种规格的扩展卡,用户可以用来为硬件平台添加多达4个千兆接口。

合理的配置与设计

打开NSP-1096的机箱上盖,可以看到处理器所在位置做了有针对性的设计。NSP-1096没有使用处理器散热风扇,而是采用了一个较大型的铜质散热器,通过特别制作的导流罩,配合机箱风扇形成一个专门风道,给CPU、内存条以及北桥芯片散热。风道两侧是磁盘悬挂位和电源,该产品配备了全汉的80Plus电源,让NSP-1096在所有的工作负载时间内都能维持较高的电能转换效率,降低了发热量以及其散热需求。

NSP-1096采用了专门为嵌入式平台设计的英特尔G41芯片组,和ICH7/ICH7R南桥芯片搭配使用。作为系统的核心,G41连接着处理器、内存和PCIe总线。它支持1333MT/s的FSB,可以兼容嵌入式产品列表内LGA775接口的各种赛扬、酷睿处理器;内存规格则支持到DDR2-800和DDR3-1333,且拥有两个内存通道,最大容量达到8GB。I/O方面,G41提供了16个PCIe v1.1信道,可以配置为1×16或者2×8;此外,通过DMI 1.0总线和G41连接的ICH7R南桥还能提供6个PCIe v1.0a信道。在NSP-1096上,这6个信道连接了6颗英特尔82754L网络芯片(对应前置接口,其中2组支持硬件ByPass);G41提供的PCIe v1.1 x16则连接到扩展槽位,用以连接使用了82576、82580等中高端网络控制器的扩展模块。

NSP-1096内置的6颗82574L芯片是沿用已久的嵌入式/服务器千兆以太网控制器,支持2个TX/RX队列和2个RSS队列,是一个成熟稳定、性能尚佳的产品。该芯片使用PCIe v1.1 x1接口,能支持MSI-X等技术。不过由于连接在支持PCIe v1.0a的ICH7R上,它仅能使用传统的MSI模式。扩展模块上应用较多的82580则是英特尔最新推出的单芯片四网口千兆以太网控制器,采用了支持5GT/s速率的PCIe v2.1 x4接口,支持包括LTR、TPH、DCA等在内的诸多特性。面向网络通信、主流服务器和高密度刀片的82580是十分强大的芯片,其规格甚至比上一代的王者82576还要强一些。

测试使用的这台NSP-1096还配备了一颗主频为2.66GHz的英特尔Q9400处理器,该处理器使用45nm工艺设计制造,具有4个核心和6MB二级缓存。内存使用了2根DDR3-1333规格、1GB容量的产品,工作在双通道模式。网络接口方面,除了板载的6个千兆铜口,我们还在扩展槽位安装了一块编号为BEM-580-F4的扩展卡。该卡使用了一颗英特尔82580网络控制器,提供4个额外的SFP接口。不过,理论上该芯片在连接到G41的PCIe v1.1后速率将降为2.5GT/s,功能特性也只有包括MSI-X模式在内的v1.1部分可以使用。

整体性能超越预期

在CF卡中安装了NCPBench 0.8后,我们将每两个相邻接口配置为桥模式,进行纯转发性能与带简单业务情况时的测试(NCPBench的功能介绍和使用方法见上一期连载内容)。对于NSP-1096来说,BEM-580-F4扩展模块在很大程度上左右着整机的处理能力,我们也对其进行了重点考察。考虑到是第一次在这样的配置场景中进行测试,每个项目在使用测试仪表进行测试后,都再使用NCPBench进行一次自测试。我们可以对比两组数据的差异,用以评估NCPBench测试结果的准确性。

从测试结果中可以看出,当NCPBench运行在纯转发模式时,BEM-580-F4扩展模块上的4个接口转发64Byte帧的速率超过4Mpps,其他帧长时均接近或达到线速。这个结果虽然出色,却使人略感遗憾。我们曾经在一台采用5520芯片组的硬件平台上,测得过82580的4个接口间所有帧长均线速转发的结果,也就是说瓶颈不在网络控制器。而对NSP-1096全部10个千兆接口的测试结果表明,该产品对64Byte帧的整机转发能力接近9Mpps,这又意味着,之前测试中的性能瓶颈也不应该在处理器。经过排除分析,我们推测问题很可能来自I/O方面,理论上G41与82580协商后只能使用PCIe v1.1规格进行连接,在传输速率和效率上都大打折扣。此外,硬件平台在缓存和内存等方面的差异,也可能会对数据包转发能力造成一定影响。不过总体来说,NSP-1096的设计已经最大地发挥了G41芯片组的潜能,表现出来的整体性能也超越预期,足以满足其目标市场的需求。

本次测试中,测试仪与NCPBench得到的两组结果保持高度一致,我们只在高负载情况下观察到pps统计数值略有不同,没有出现往常几个百分点级别的差异;加载简单业务后,性能数据也没有发生很大变化,只在使用128Byte帧长测试时有所降低。我们认为,造成这两种情况的主要原因是处理器本身有性能余量,接口带宽也限制了极限数据的出现。单就NCPBench来说,其自测试结果还是比较准确的,可以满足用户的常规测试需求。

测试项·配置

帧长度

转发

(100%=4Gbps)

转发+业务

(100%=4Gbps)

测试仪 NCPBench 测试仪 NCPBench
64 Byte 67.773% 67.773% 67.773% 67.773%
128 Byte 96.143% 96.143% 93.707% 93.707%
256 Byte 100% 100% 100% 100%
512 Byte 100% 100% 100% 100%
1024 Byte 100% 100% 100% 100%
1280 Byte 100% 100% 100% 100%
1518 Byte 100% 100% 100% 100%

表格:NSP-1096吞吐量测试结果(针对BEM-580-F4扩展模块)

(2个打分, 平均:3.00 / 5)

雁过留声

“《给力吧,x86》专题连载五:网络通信硬件平台巡览•G41篇”有21个回复

  1. Panabit 于 2011-12-11 5:59 上午

    双向5G以内,G41是一个不错的性价比比较好的平台。

  2. 理客 于 2011-12-11 11:29 上午

    10年前路由器的三板斧就是过ACL,查路由,做QOS,目前的X86平台在三斧齐下的情况下,performance如何?

  3. Panabit 于 2011-12-11 5:52 下午

    这方面没有评估过,不好做结论,另外一方面,这些都和算法关系比较大,还有数据规模,都存在变数。

  4. 新手 于 2011-12-11 7:18 下午

    文中的“业务”指的啥?是指2楼说“三板斧”吗?

  5. 新手 于 2011-12-11 7:26 下午

    哪位大侠扫扫盲,LTR和TPH主要解决什么问题?

  6. znzemt 于 2011-12-11 10:17 下午

    “BEM-580-F4扩展模块上的4个接口转发64Byte帧的速率超过4Mpps……而对NSP-1096全部10个千兆接口的测试结果表明,该产品对64Byte帧的整机转发能力接近9Mpps,这又意味着,之前测试中的性能瓶颈也不应该在处理器”
    — 这个有点奇怪。4个接口4Mpps,大概有67%的能力;整机10个千兆为9Mpps,只有60%的能力。使用扩展槽位的性能反而更高?是笔误呢,还是我的理解错误。。。还请解一下惑

  7. 理客 于 2011-12-12 4:29 上午

    to Panabit and 老韩:
    如果X86要做路由器,就必须要做这个评估,客户并不十分关系内部算法,主要看结果:比如100个五元组ACL带端口范围+10K路由+每端口CBWFQ(PQ+WFQ)8个下的转发性能,因为这是做路由器最基本的要求,不能做这个组合,就不能做路由器

  8. 老韩 于 2011-12-13 5:41 上午

    我真不太懂啊,就是随便问问,10K路由国内现在哪些环境下会用到?谢谢

  9. 理客 于 2011-12-13 7:52 上午

    一般的路由器支持一万条路由不是太大,在运营商是很基本的,当然, 在企业网,可能要大中型的企业。
    对于测试,测1K也可以。

  10. multithreaded 于 2011-12-20 11:50 下午

    to理客: 你说的三板斧:ACL,查路由,做QOS估计指做了一项: Lookup。

    还没有见到X86能做到10Gbps的TM。

  11. multithreaded 于 2011-12-21 12:02 上午

    个人觉得路由器表应大于64K; 否则的话LOOKUP大都是一次HASH的动作。

    考虑到LLC一般是4-6MB,假定每一项用4Byte,路由器表可以做大到256K, 以考察CCache的影响。

  12. 根本不相干 于 2011-12-21 12:26 上午

    考虑到LLC一般是4-6MB,假定每一项用4Byte,路由器表可以做大到256K, 以考察CCache的影响。
    ———————-

    有点没看明白,这是在测x86的路由极限,看大到什么程度能把它测瘫,还是在根据用户需求条数测它的满足度?

  13. 理客 于 2011-12-21 12:43 上午

    不知道安全为什么不需要QOS?可能是安全类设备本身就不允许congestion发生,所以基本不需要OS。
    但对路由器,基本的每端口4-8个PQ/WFQ队列,是必须的,不知道X86在叠加这个路由器基本特性后有何表现?panabit有没有过评估?

  14. Panabit 于 2011-12-21 10:51 上午

    没有评估过。WFQ一般是是LogN复杂度,但是中间会涉及到排序(比如堆排序),这个会导致不少数据移动,会导致CACHE POLLUTION情况频繁发生,所以要评估的话,不能泛泛评估,和具体实现是密切相关的。我们的本意是评估X86的IO能力的(因为以前大家一直对此诟病),业务相关能力和算法以及数据结构关系太密切,且缺乏标准,不好评估。

  15. Panabit 于 2011-12-21 10:57 上午

    回6楼:扩展槽使用的是82580EB * 2,82580用的是PCIE * 4,所以带宽要高一些。板载的是6 * 82574,82574是PCIE * 1的,相对来说要低一些。82580本身是可以线速的,所以理论上应该是可以做到6Mpps的,现在只有4M,主要还是受总线限制。

  16. 陈怀临 于 2011-12-21 11:31 上午

    单纯的Firewall不会有复杂的TM。会有一些基本的shapping,policying。软件做负责的Queue Scheduling,例如edge之上的router,还是不太现实。。。

  17. 理客 于 2011-12-21 12:36 下午

    实际应用也不会用复杂的什么HQOS,N多队列,也就CAR以及每端口4-8个PQ/WFQ队列,最多是支持一下逻辑接口如VLAN interface/subinterface

  18. kernelchina 于 2011-12-21 4:57 下午

    在队列多的情况下,调度就会成问题,思路就是分而治之,分布式,每个cpu负责的队列少一点。所以讲QoS还是需要了解一下有几个端口。以最简单的情况,两个端口,不支持vlan,我想x86还是能够胜任的,猜的,没实际用过。

  19. 根本不相干 于 2011-12-21 5:07 下午

    软件做负责的Queue Scheduling,例如edge之上的router,还是不太现实。。。

    ———————–

    不知道软件做BRAS会怎样?

  20. Panabit 于 2011-12-21 6:22 下午

    这个问题可以这样看,如果所操作的数据集基本上都在二级CACHE里可以命中,那么一个X86 CORE基本上就相当于一个ASIC CORE,X86的主频计算能力大家是清楚的。可以测试一下token bucket方式下的吞吐能力,比如定制一个永远不会抛弃packet的大的token bucket,看看一个Core能处理多少pps。

  21. Taylor 于 2012-04-07 1:11 上午

    有说到散热部份,有需求可发信至
    lfli@paramountech.com.cn;