多核软件体系设计
在采访中我们得知,万兆多核的软件架构设计与X86架构下的设计完全不同,无法进行简单的代码移植,必须配合硬件平台进行针对性的设计与优化。启明星辰为此全新设计了UTM专用的64位操作系统,这也是万兆UTM产品化过程中工作难度最大、工作量最多的部分。
我们首先遇到的难题就是性能不随核数增长而线性增长的问题”,启明星辰的专家告诉记者。
据了解,在采用Cavium多核硬件平台进行了相应的软件开发后,启明星辰在万兆UTM预研初期,就实现了4核情况下3G的防火墙性能,但在随后进一步的研究中,发现性能提升似乎到了极限,随着核数的提升性能并不相应的线性增长。如图2所示,问题出在哪里呢?
图2
图3
硬件平台多达16个CPU核在同时进行并行业务处理,对各CPU核的业务调度与控制尤为重要。在传统的X86架构下的,CPU最多4核,对CPU核的调度问题并不突出,而在16核情况下,该问题便暴露出来。为攻克此问题,启明星辰集中了研发体系的所有优势资源,成立了技术攻关小组,并贯穿产品化始终,从挖掘硬件资源、业务锁等多个方向进行优化,软件人员与硬件驱动人员通力配合,共同寻找提高性能的途径,逐一优化,一个核一个核的攻。最终,实现了业务性能的线性化增长。如图3所示,随着核数的增多,性能曲线基本保持线性增长的态势。
当然,在软件体系架构设计中遇到的大小问题还有很多,如:在持续引入新的业务新特性情况下,如何保证性能不下降?产品的可调试性等等。最终,启明星辰依靠研发技术优势,集中攻关,把这些问题逐一解决,实现了高性能万兆UTM的成功商用。