多核那些事
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最近对多核的讨论和宣传都蛮多的,那么从产品设计上,来说说一些在之前讨论中容易被忽略或者误解的一些情况:
1:多核一定比x86快么?
从原理来讲,NO:多核的每一个核的主频通常远低于常见的x86CPU,虽然核数众多,但是核间竞争又是一个大问题。 所以,如果优化得不好,未必比x86快。
从目前的实现来讲,Yes:就目前看到产品而言,无论用RMI的还是Cavium的,几个大厂的东西优化得还不错,速度远高于用X86做出来的东西。
2:多核比ASIC和NP快么
这个还真不一定,做得好其实后面两个(特别是ASIC)可以做的更快的。只不过,该死的开发环境决定了用ASIC和NP没灵活性,开发成本高,适应和升级能力低。这其实就好像,用汇编的效率高吧,但是现在还有哪个大软件是用汇编来写的?
3:Inter 不也是多核么?
广义来讲,Yes: 凭什么不许人家Inter的4核8核CPU叫多核呢?
狭义来讲,No:在俺们安全产品界,讲多核基本指的是RMI、Cavium这两家的东西,从最核心讲,指令集得用RSIC,而不是Inter或者AMD的CSIC
4:多核就是靠快来打下高端安全设备的江山的么
狭义而言,Maybe:至少就目前而言,各厂商正在努力的说服用户,多核=快=高端。在一定程度上,产品的表现也的确如此。
广义而言,No: 多核打ASIC、NP靠的是容易开发和由此带来的产品随需而变的能力。打X86才是靠快呢。 再有就是,咱们上面说的,多核用的RSIC,这东西带来的一个不能忽视的好处是更低的单核功耗,低功耗意味着更少的发热,也就意味着更低的散热系统需求,再延伸到可以采用多核来构成更快的系统和更好的稳定性。 RMI的32核,Cavium的16核都可以轻松的放在一个1U盒子里。但是如果是Inter,你觉得32核(就算是8核一颗也要用4颗CPU),需要多大的机箱才能满足散热需求呢?
5:多核好,多核妙,为啥多核不彻底替代X86
说到底还是刚才说的指令集问题,RSIC的一大问题是,只针对有限的领域快,要是完全茫然的领域,还是交给适应性更强的CSIC吧。
6:多核不是唯一决定性能的东西。
给你1个人,1天能砌1米墙。10个人,搞得好可以砌15米墙,也可能只能砌8米墙。给你1万个人,1天砌不到1万米墙的可能性居多。
多核只是基本的资源,然后怎么调度多核,特别是那些号称还要x86+多核的,还要用到PCI总线的,怎么解决好资源竞争是关键。 解决得不好,就变成3个和尚没水喝哦。
7:多核是趋势啊,俺们公司也想做多核,有没什么ooxx方案。
这个可以有。不过可惜这方案没手机的那么完善,想做个山寨还是很难的。如果不OEM,而是希望自己开发的公司,
请做好至少2年投入的准备。
所谓网安的多核,就是集中了计算跟报文转发两种能力,使得其在与x86以及np等网络处理芯片的竞争中占全方位优势。当然此多核跟彼单核相比,自然不是线性的累进关系。多核为啥方兴未艾,还不是utm要飞得更高搞的。
听说国内厂商有在Tilera的众核板子上做安全网关的,那板子号称能实现10G的snort。
我看过产品,以那个为基础做众核安全网关的确是很可行的。
其实rmi和cavium也有基本的一些诸如防火墙什么的方案的。 但是从这里出发,到可用的商用产品还是有一定距离的。
其实搞多核,技术人员需要解决的核心问题不再是机器码的问题,而是把一个应用的开发分散给多核的问题。
6月1日,NetLogic公司宣布收购通信业界著名芯片公司RMI。价格为1亿7千5百万美金的股票交易和8百万的现金。在收购条文中,如果RMI能达到某些彼此同意的预期,董事会将会追加另外6百50万美金的现金。
RMI被收购后具体的变化及后续的技术支持能力不知道怎么样了,必竞最初进入国内时RMI要好于cavium,但就基于RMI平台开发的厂商有多少影响也只有自己人才知道了。个人认为两条腿走路要好一些完全绑死一家,在金融危机下风险还是满大的,(呵呵随便说说吧了),必竞在这块我们受上游的限止在太多了。
多核不是只单一硬件的多核。最主要还是要看软件的操作系统如何?如果你的软件只能调度一个核,那么你的多核就是虚设,其实只有一个。如果你的软件对多核调度的不好,就好比一个团队在做一个工作,意见不统一估计效率比一个还要低。所以无论是risc和cisc都有各自的长处和短处,所以没有必要在这个上面做文章,正所谓尺有所短,寸有所长啊。什么样的系统采用什么样架构,我个人还是认为取决于应用。比如说只是用来做防火墙,我认为risc比较好,性能也比较高。如果对应用层的处理还是cisc的强。
无论是Cavium还是RMI,核数的多寡只是解决性能问题的一个方面,软件系统的设计是非常重要的,在Cavium上,如何设计高效的SE程序,决定了多核计算优势的发挥(不考虑SMP模式)。
否则,加上一堆锁,16核的性能与10核性能相当,核数的数量就不是优势了。
在网络和网安产品上选择risc的多核,还有一个工程化的需求,在这些设备上,是要求不可以有CPU风扇的,这个目前cisc的东西比较难做到。 如果在一个标准2U设备中,要做到Cavium16核或者RMI32核的性能,用inter或者AMD的东东来堆。搞不好能煮开水的说。
万兆时代:纯多核也解决不了问题,还是要多核+分布式处理
说句实在话,多核不是
最佳的性能解决方案,只能算过渡产品。君不见,国际上有实力的安全厂商其高端鲜有多核,国内安全厂商却乐此不疲,说白了,RMI/Cavium/Tilera都是在linux SMP上有实验型套餐,能够“短平快”地推出产品。
分布式是一个方案,硬件加速(ASIC/FPGA)必须是补充,在如今数据大集中的时代,WEB2.0加速的环境下,除了吞吐量以外,时延更加关键,而这是多核不能解决的。到处都在谈IPS,谈UTM,这些内容匹配的业务真正深入研究起来,CPU的时延已经成为制约瓶颈。
天融信的猎豹是一个可喜的尝试,但是感觉硬件积累不足,近两年鲜有寸进,连维护都做得很困难.........
国内安全堪忧啊。
为什么是Cavium/RMI的多核?
主要是国内网安企业基本是纯软件公司,没有硬件研发的力量和资源,无法研制ASIC硬件加速,在X86平台上挣扎了多年,赚取了第一桶金之后,基于MIPS64多核的系统就成了大家进一步发展的救命稻草.
Cavium/RMI,既支持SMP模式,也支持SE+OS(1和或几个核上跑BSD/Linux,做配置管理,其他核上跑业务单元)
Cavium的OCTEON和RMI处理器应该是国内网安企业首选的硬件平台,一方面价格适中,开发方便,上手快(基本上和X86变成差不多,可以用C/C++以
及汇编),另外,集成了众多的安全特性,如加解密引擎,压缩/解压引擎,正则引擎等.
SonicWall在08年上半年已经推出了基于Oceon16核的UTM,国内的启明也推出了采用该平台的USG,适合的就是最好的,未必是最先进的.
其实多核还有一个更重要的的问题,就是其处理数据的安全性如何得到保证,是否有安全黑洞,能否进行理论证明,这个国内好像根本没有人研究过。
单个CPU时还是比较好证明的,如果多个CPU并行处理就会困难度大增了。
国内至今也没有一个在多核上如何进行安全的处理流程方面的理论,理论没有支持,做得越多错的越多。
有机会使用过OCTEON和Telira平台。个人认为,技术上多核比NP更加灵活,这是一种发展。这种发展是信息安全产品对平台技术特定要求的体现,这就是不断适应新的安全问题要求平台的扩展性和灵活性。多核目前看提供了较好解决方案,但是相信不是终极方案。或许,这种内在矛盾需要一种框架上的提高。跟人认为虚拟化和多核的结合是未来的发展方向,这点在intel和Tilera等公司的设计中已有体现。设想一个虚拟化平台层面将隔离目前硬件处理和功能实现间的冲突,可大大简化功能实现对平台细节的依赖。
多核和NP比维护上起码方便很多,开发虽然比单核复杂,看是比NP开发方便啊。大家一直认为NP不适合做应用层处理,而现在应用层的处理又是大势所趋。所以多核必然是
趋势。
不过LZ说的Intel的多核不算是多核这个不对,Xeon还是很强的,只是没有专门对网络处理做优化,要利用它的多核能力,软硬件设计都相对复杂一些。感觉主要还是因为这块不是Intel的主业,不然以它当初投入IXP时那样的劲头,在多核防火墙方面应该有所收获的。
感觉一些方面大家对多核有些误解:
1 多核不是为了提供网络处理能力,而是针对高计算方面处理,如内容深度过滤。
2 网络处理能力提高可以使用ASIC, 所以有的厂家是多核+ASIC.
3 还要想到多核的出现,同时能够提升网卡的需求。比如以前cpu最多能处理100M,给你1KM网卡有什么用?现在多核能处理万兆的,所以可以使用光口等高速网卡,从而整体性能有了提高。