国产信创服务器是近些年信创突破的重点,面对技术封锁和卡脖子限制,如何实现真正的芯片自主可控也是业界发力的方向。近期华为鲲鹏9000s系列芯片的发布让大家眼前一亮,似乎面对芯片的技术封锁打了一场漂亮的翻身仗。那么在服务器市场国产CPU发展如何,主流的信创服务器有哪些产品,性能表现如何,本文将简单介绍,并结合信创服务器的性能对比测试进行分析。
CPU(中央处理器)作为计算机系统的运算和控制核心,是信息处理、程序执行的最终执行单元,主要功能包括指令控制、操作控制、时间控制和数据加工。CPU内部通常由三个主要部分组成:运算器、控制器和寄存器。
此外,CPU内部还有高速缓冲存储器(Cache)等组件,用于提高数据和指令的访问速度,降低内存访问延迟。
CPU指令集是计算机中计算和控制计算机系统的所有指令的集合,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部 I/O。简单地来说,指令集一般被整合在操作系统内核最底层的硬件抽象层中,属于计算机中硬件与软件的接口,它向操作系统定义了CPU的基本功能。
现阶段CPU指令集分为CISC(复杂指令集)和RISC(简单指令集)两种。
CISC和RISC指令集对比如下表所示:
CISC和RISC发展到现在无论哪一方都没有绝对的优势和劣势,在阵营上CISC以Intel、AMD的X86架构为代表,RISC则以ARM、MIPS、PowerPC等架构为代表。从硬件和性能角度分析,有以下不同:
随着后续技术和生态的发展,CISC和RISC也逐渐走向融合,以X86架构CISC处理器占据了个人PC市场,以ARM架构RISC处理器占据了移动端市场,并随着云计算市场的发展,ARM架构RISC处理器也向服务器市场扩张。
国产CPU发展一路坎坷,尤其是最近十年来国外的技术封锁以及芯片工艺上的限制,形成了代差。但随着近期华为鲲鹏9000s系列的发布,这种芯片上的技术封锁被打破,芯片上的自主可控带来了惊喜。国产CPU的飞速发展自十五期间的泰山计划开始,到2018年前后的国外芯片技术限制后的政策支持,形成了以海光、兆芯、飞腾、鲲鹏、龙芯、申威为代表的国产六大CPU厂商。
当前主流的芯片架构为X86和ARM,均为国外主导。对指令集的掌控程度决定了国产化的程度,国产CPU通常通过授权或者自研的方式,有以下三种模式:
可以看出,在自主可控程度上是龙芯和申威>飞腾和鲲鹏>海光和兆芯。
经过多年发展,国产CPU初步形成六大厂商齐头并进的格局,以鲲鹏、飞腾、龙芯、兆芯、海光、申威为代表,一批优质国产CPU企业快速崛起。
综合比较六大国产CPU厂商:1)在性能方面海光系列的X86架构和鲲鹏系列的ARM架构占据优势;2)在生态方面,海光和兆芯基于X86指令集具备生态优势、飞腾和鲲鹏为代表的ARM架构正在构建自己的生态、申威和龙芯由于自研指令集生态扩展上不具备优势;3)在指令集自主可控上,申威和龙芯自研指令集>鲲鹏和飞腾基于ARM的指令集授权>海光和兆芯基于X86的IP授权。
在国内信创服务器领域,以海光为代表的X86架构和以鲲鹏为代表的ARM架构占据了绝对的份额。鲲鹏和海光占据性能优势,在电信、金融等行业已经广泛采用,比如中国移动在2022年上半年发布了服务器补充采购的招标公告,本次补采鲲鹏服务器占比43.30%,海光服务器占比56.70%。X86架构和ARM架构对比,有以下不同之处:
从目前CPU的发展来看,无论是ARM还是X86,都在努力巩固自己的优势,同时积极吸取对方产品的特色,取长补短,期望有所突破。无论如何,未来的CPU肯定在朝着高性能、低功耗的方向发展。
国产CPU服务器主流产品包括海光和鲲鹏服务器,因此在信创服务器的性能对比过程中以海光处理器和鲲鹏处理器为主,并和Intel处理器进行对比。具体的测试服务器配置如下:
测试服务器都是采用虚拟化主机的形式,没有使用物理机,CPU和内存为16c32G。其中操作系统Intel使用Redhat 8.5、海光和鲲鹏使用的是信创Kylin V10版本;CPU型号海光是C86 7285、鲲鹏为Kunpeng-920、Intel是C5281R,CPU主频鲲鹏服务器稍高为2600。其它配置具体见表格。
使用sysbench压测工具测试服务器的CPU性能,命令如下:
#sysbench cpu –threads=`grep “processor” /proc/cpuinfo |wc -l ` --cpu-max-prime=200000 run
以上命令计算200000以内所有素数所需的时间,测试结果如下:
从CPU性能对比来看,Intel和海光的avg时间为鲲鹏ARM架构的3倍;95%占比Intel为鲲鹏的2.9倍、海光为鲲鹏的3.2倍。总体CPU性能上鲲鹏表现更优,和ARM架构的精简指令集RISC有关系。
使用sysbench压测工具测试服务器的内存性能,命令如下:
#sysbench memory --memory-block-size=8k --memory-total-size=8G run
以上命令测试内存中传输8G的数据量所需时间,测试结果如下:
从测试结果上看,三类服务器差别不大,鲲鹏表现更优。
使用fio命令测试服务器磁盘IO性能情况,命令如下:
#fio -direct=1 -iodepth=64 -rw=randrw -ioengine=libaio -bs=16k -size=10G -numjobs=8 -runtime=600 -group_reporting -filename=fiotest.txt -name=test
"-direct=1": "以直接I/O模式运行测试,绕过系统缓存。",
"-iodepth=64": "设置队列深度为64。",
"-rw=randrw": "随机读写模式。",
"-ioengine=libaio": "使用libaio作为I/O引擎。",
"-bs=16k": "设置块大小为16KB。",
"-size=10G": "设置测试文件大小为10GB。",
"-numjobs=8": "设置并发作业数为8。",
"-runtime=600": "设置测试运行时间为600秒。",
"-group_reporting": "汇总报告结果。",
"-filename=fiotest.txt": "设置测试文件名为fiotest.txt。",
"-name=test": "设置测试名称为test。"
以上命令读写10G文件测试磁盘的IO性能,测试结果如下:
从测试结果看,Intel服务器的磁盘IO性能最优、鲲鹏读写性能次之、海光表现相对差些,不排除虚拟机的影响。但整体上信创服务器的IO性能相较Intel_x86架构表现要差些。
混合业务压力测试使用sysbench脚本测试主键select、单insert和混合读写三种场景下在不同并发情况下的性能表现。
使用sysbench的oltp_read_only.lua进行主键查询性能测试,结果如下:
从TPS和时延指标来看,Intel服务器表现更优、海光次之、鲲鹏较差,但是海光和鲲鹏服务器在TPS表现上总体较Intel服务器还是有差距,性能上差40%。鲲鹏服务器的CPU表现更好,但是在高并发情况下CPU使用率上不去。
使用sysbench的oltp_insert.lua进行单insert性能测试,结果如下:
从TPS和时延指标来看,Intel服务器表现更优、海光次之、鲲鹏较差,在单insert插入场景下海光和鲲鹏服务器在TPS表现上总体较Intel服务器性能上差15%~25%。
使用sysbench的oltp_read_write.lua进行混合读写性能测试,结果如下:
从TPS和时延指标来看,Intel服务器表现更优、海光次之、鲲鹏较差,在混合读写压力场景下海光服务器在TPS表现上总体较Intel服务器性能上差40%、鲲鹏服务器较Intel服务器差50%。鲲鹏服务器在高并发情况下CPU使用率上不去,业务TPS也上不去。
通过对Intel_x86处理器、海光X86处理器以及鲲鹏ARM处理器三种服务器在主键select、单insert和混合读写测试场景下的性能对比,总体表现如下:
总结下来,国产服务器不论是海光X86还是鲲鹏ARM,和Intel处理器性能对比,存在明显的代差,国产信创之路道阻且长。以上数据受限于测试服务器和测试场景,仅供参考。
参考资料: