软件成就了云计算技术的发展。同时,软件也在制约着云计算技术的发展。在云计算平台上,软件可以定义网络、软件可以定义存储;甚至是防火墙、负载均衡等硬件设备,在云平台上依然可以通过软件来进行功能实现。但是,软件的功能,是需要耗费计算资源的。有限的计算资源在被数据传输和管理控制软件占用之后,留给用户使用的,业务应用处理计算能力,大幅下滑;云计算这个平台,也就彻底的“软”下来了。此外,虚拟化平台的安全性问题、应用容器化部署问题,也同时在对软件化、虚拟化的云平台提出更多考验。
为了能让软件化的云平台重振雄风,从根源上解决计算性能、虚拟化安全以及应用容器化部署问题。阿里云率先推出了神龙服务器架构解决方案。
早在2016年,阿里云开始了神龙云服务器的研发。为了让云服务器具备物理服务器的高性能,阿里云设计了神龙架构,通过专门设计的神龙芯片实现存储、网络的高性能数据转发。并结合云主机的统一控制管理,将所有管理控制功能都由此专用芯片实现,让所有的接口都和虚拟机保持一致。最终解决物理机可以使用云存储、VPC网络、挂载本地盘的问题。
2017年10月,阿里云首次公布神龙架构,性能卓越的弹性裸金属服务器诞生。不仅保留了普通云服务器的弹性体验,而且保留了物理机的性能与特性,可全面支持嵌套虚拟化技术。换句话说就是,阿里云第一代神龙服务器,既保留了普通云服务器的弹性体验,又保留了物理机的性能,所以用户可以自己在弹性裸金属上虚拟化,支持嵌套虚拟化。
2018年9月,第二代神龙出世,实现同时管理弹性裸金属和虚拟机和弹性容器实例,统一的管理平台意味着更低的成本,更高效率。
即便如此,阿里云依然不满足,在第二代神龙服务器的基础上,研发出第三代神龙服务器。目前阿里云的第三代神龙服务器家族,最大可以支持208核四路处理器,最大可提供6TB内存。还可以提供高达100万的云盘IOPS和2400万PPS的网络转发以及100Gbps的网络带宽。在弹性可扩展方面,第三代神龙服务器可以实现3分钟交付50万核CPU,并且可以提供CPU、GPU、NPU、FPGA等多种异构计算能力,以及覆盖互联网、金融、零售等近三百种应用场景。 而且可以将容器应用性能提升30%。真正实现高性能、高安全、灵活可扩展的应用体验。神龙由此,开始变化万千。
现在,阿里云又在2021年的云栖大会上发布了第四代神龙架构服务器,更对eRDMA能力和安全功能进行了加持。
为了对阿里云神龙服务器实际性能进行更深入地了解。下面我们就从基础性能、应用性能、大数据性能以及行业应用场景四个方面对阿里云神龙服务器与和它技术发展路线相近的AWS Nitro服务器进行一下测试。看看由千变万化的神龙,是否依然具备着裸金属的性能实力。
为了对阿里云神龙服务器进行更深入地了解。本次至顶网评测实验室采用对比评测的方式,选择阿里云神龙以及和神龙采用相同技术路线的AWS Nitro,在相同配置、相同CPU架构与核数,主频相近的情况下,进行一个对比性测试。本次测试分为基础性能测试、应用性能测试、大数据性能测试和高性能计算测试四个部分。
目前有很多测试计算性能的测试工具,比如至顶网在公有云性能测试中所采用的Geekbench,但是目前这些测试工具的测试方法开始变得越来越不透明,难以对具体结果进行直观分析。好在Linux下面有着非常丰富的性能测试小工具。而且在相同配置之下的测试结果比较会更加说明问题。因此在本次测试中,我们将会采用众多Linux下的小测试工具对神龙和Nitro的基础性能进行评测。
在本项基础性能测试中,我们选择了都是8vCPU 32G内存,基于Intel Ice Lake CPU通用规格的阿里云 ecs.g7.2xlarge vs. AWS m6i.2xlarge。
阿里云神龙云主机配置截图
AWS Nitro云主机配置截图
在计算性能测试中,我们使用linux下的bc计算器程序通过反正切函数计算5000位圆周率的cpu耗时来对阿里云神龙和AWS Nitro的云主机进行测试。测试采用比较常用的time echo "scale=5000; 4*a(1)" | bc -l -q &>1来对云主机单核计算性能和编写测试脚本,对多核计算性能分别进行了测试,测试结果如下:
从测试结果可以看出,由于Intel Ice Lake CPU所具备的超线程技术,无论阿里云神龙还是AWS Nitro,单核Super_Pi性能都要好于多核Super_Pi。而且在测试结果中,AWS Nitro的性能要略好于阿里云神龙。而处理性能的高低与CPU主频和软件控制、系统优化等诸多方面都有着密切关系,我们在测试总结中,将更深入进行一下分析。
CPU对计算指令的响应时间,也会对计算性能产生十分大的影响,如果调度延时高,会额外增加CPU的负载,因此在本次测试中,采用schbench进行测试,测试结果如下:
通过测试结果来看,阿里云神龙云服务器和AWS Nitro的云主机CPU调度延时都处于微秒级别。我们采用99%分位的数据来代表绝大多数情况的cpu调度延时,这时候阿里云神龙的CPU调度延时仅为10微秒,而AWS的CPU调度延时略高,达到19微秒。二者有着近一倍的差距。
所有的CPU处理任务,基本上都要通过内存进行缓存,因此内存带宽的大小,基本上也就代表着主机可以处理数据的最大总线带宽。在这里我们通过stream来对阿里云神龙和AWS Nitro的云主机的内存带宽进行测试。结果如下:
在stream “copy”、“scale”、“add”、“Triad”四种不同计算模式下,阿里云神龙内存带宽分别可以达到57GB/s、58GB/s、65GB/s、64GB/s。AWS Nitro 内存带宽为55.9GB/s、55.9GB/s、62GB/s、62GB/s。总体上看,阿里云神龙内存带宽性能要略好于AWS Nitro。
接下来看一下阿里云神龙和AWS Nitro的云主机的内存时延,这里用mlc来对二者的内存时延性能进行测试。
从测试结果我们可以看出阿里云神龙的内存时延(mlc)可以达到86.5纳秒,性能非常出色,而AWS Nitro的内存时延(mlc)结果虽然略低,但也达到了99.8纳秒,同样性能十分优秀。
前面讲过无论是阿里云的神龙还是AWS的Nitro,都是通过专用芯片将以前云平台上数据读写工作卸载下来,让CPU去专注于计算,现在对云盘读、写iops的测试,实际上就是对这个专用芯片数据处理性能的最好考验了。在存储性能测试中,我们采用的是Linux下的经典测试工具fio。首先测试的是两个云主机在挂载高性能云盘后的云盘读、写iops性能。在神龙上我们挂载的是1块1100G性能等级为PL2的 cloud_essd 云盘;在Nitro上挂载的是1块1100G io2云盘,测试结果如下:
从测试结果可以看出,阿里云的高性能云盘iops性能要好于AWS,阿里云高性能云盘在神龙云主机上的读写iops均可以达到57k iops以上,而AWS的高性能云盘在Nitro上的读写性能为40k iops左右。
实际上无论是带宽性能还是IOPS,就一个云平台整体存储资源分配问题,云平台必然不会为单台云主机分配上所有的云盘带宽资源。因此,如何充分满足用户的存储带宽使用需求,又可以将整理存储带宽合理分配,就成为一个考验云平台分配能力的工作了。下面我们就来看一下阿里云神龙与AWS AWS Nitro的云主机读写带宽。
从测试结果可以看出,阿里云神龙云盘读、写带宽均在684MiB/s左右,AWS Nitro 云盘读写带宽略高,在766MiB/s左右(1 MiB = 1024 KiB)。
在带宽资源受云平台控制的前提下,想要更好地了解存储性能,就需要对云盘的时延进行一下测试了,在这里我们同样使用fio对阿里云神龙和AWS Nitro云盘的读、写时延进行了测试。
从测试结果上看,阿里云神龙云盘读平均时延为190.42微秒,写平均时延为106.69微秒。AWS Nitro 云盘读平均时延为433.03微秒,写平均时延为473.39微秒,与阿里云神龙有一定的差距。
网络性能的传输速率,同样是对这两款云主机专用芯片的考验。在本项测试中,我们在两台云主机上分别安装netperf工具,并在Client端发送小包进行压测,并在server端通过sar监控网络流量。
从测试结果可以看出,阿里云神龙网络传输速率在1.6M pps左右,AWS Nitro 网络传输速率在1.2M pps左右,略低于阿里云神龙。
网络带宽同存储带宽一样,除了是对这两款云主机专用芯片的考验之外,也一样在考量着云平台的网络资源分配。在本项测试中,我们在两台云主机上分别我们在两台云主机上安装netperf工具,并在Client端发送大包进行压测,并在server端通过sar监控网络流量。
在本项测试结果中可以发现,AWS Nitro分给云主机分配的网络带宽比较充裕,网络带宽达到了 11.61Gbps(1522259kB/s*8/1024/1024)而阿里云神龙稍逊,网络带宽为10.33Gbps(1353772kB/s*8/1024/1024)。
接下来我们通过sockperf这个基于套接字API的网络基准测试实用程序,对两款云主机的网络数据包转发时延进行测试。在本次测试中,在压力为100K UDP pps 的低负载情况下
对神龙和Nitro的单向时延进行测试
从平均时延的测试结果来看,AWS Nitro 单向时延为23.185微秒,而阿里云神龙以30.448微秒略微落后。按常理来说,单向时延应该和数据包的转发速率有关,转发速度越高,数据帧间距就越小,时延会更低。而上面的传输速率中,神龙的转发性能还要高于Nitro,因此在转发时延中性能也应该会略好才对。不过对我们而言,云平台毕竟还是一个大黑盒子,里面路由经过几跳,背后有什么检测策略都还是未知,看来有机会还是要与他们进行更进一步技术沟通,才能对这个问题有更深入的了解。
除了数据包转发时延之外,还需要对网络连接建立时的时延进行了解,在这项测试中,我们采用的是最常见的测试命令ping。
从测试结果来看,阿里云神龙的ping报文RTT时延在0.05毫秒左右,而AWS Nitro 的ping报文RTT时延略长,在0.1毫秒左右。
在应用性能测试中,我们分别对阿里云神龙和AWS Nitro的云主机的Nginx应用处理延时、MySql数据库处理性能和Redis的内存业务处理性能进行一下测试。在应用性能测试中,我们依然选择基于Intel Ice Lake CPU通用规格的阿里云 ecs.g7.2xlarge vs. AWS m6i.2xlarge。
Nginx作为一款轻量级,并发能力强、占用内存少的Web服务程序,现在在云平台上的应用部署变得越来越普遍。在本次测试中,我们通过nginx的wrk压测命令,始终保持1000连接访问请求,来对两款云主机的Web长、短链接应用响应速率进行测试。短链接测试中设置连接建立数据传输完毕后将连接断开,长链接测试中设置链接测试结束前保持,测试结果如下:
虽然作者始终在强调对网络应用连接建立速率要采取一定的限制,异常高的应用响应不仅说明云主机的处理性能强劲,还代表着你在遭受着CC攻击。虽然在应用性能测试中可以不去考虑这些因素,响应速率越高越好,但是也希望大家可以更加理性的对测试结果进行看待。
在本次测试中,阿里云神龙的Nginx短连接响应速率达到10万QPS,长连接更可以达到83万QPS左右。而AWS Nitro Nginx短连接响应速率可以达到19万QPS,长连接可以达到70万QPS左右。
和Web应用请求需要适当进行管理控制不同,对于数据库的检索调用,自然是性能越高越好。在本次测试中,我们通过跨平台基准测试工具sysbench,对阿里云神龙与AWS Nitro 的数据库读写性能进行了测试。在本次测试中,我们设置建立了100万规模的测试数据,测试结果如下:
从测试结果可以看出,阿里云神龙的MySql数据库读、写QPS分别为94733和50318。AWS Nitro 的QPS分别为85389和27509。
Redis具有基于内存部署、高并发读写、可分布式运行等特色,也在受到广泛青睐。对于神龙和Nitro这种高性能云主机而言,Redis测试可以更好地对其应用处理能力进行体验。下面使用redis自带的性能测试工具redis-benchmark测试这两款云主机在Set和Get下的成绩,测试结果如下。
从测试结果可以看出阿里云神龙Redis Set总成绩为667889,Get为697012,AWS Nitro的成绩略低,Set成绩为570001,Get成绩为602928。
TPCx-HS 是一个大数据系统基准测试。TPCx HS同时考虑硬件和软件方面,包括Hadoop运行时、Hadoop文件系统API兼容系统和MapReduce层。TPCx-HS包含数据生成、数据排序、数据验证3个阶段。在本次测试中,我们生成了1TB数据来完成TPCx-HS测试。
介于1TB的数据规模以及Hodoop测试的部署需要,在本项测试中,分别采用了4台基于Intel Ice Lake CPU,32 vCPU、128G内存的云主机。阿里云 ecs.g7.8xlarge vs. AWS m6i.8xlarge,测试结果如下:
从测试结果可以看出,阿里云神龙云主机在数据生成、数据排序、数据验证3个阶段的测试成绩分别为16分07秒、29分03秒以及5分57秒。AWS Nitro的测试成绩则为21分23秒、35分13秒以及8分08秒。
对于神龙与Nitro这样的高性能云主机而言,在处理对计算性能有更高要求的高性能计算业务,会更有它们的用武之地。因此,在本次测试中同样对这两款云主机数值天气预报计算进行了测试。
在数值天气预报计算中,由于要产生超高强度的计算,在数值天气预报计算中,我们采用的是基于Intel 8369B CPU 具备2.9GHZ主频、64物理核/128vCPU、256GB内存的阿里云 ecs.sccc7.32xlarge vs. 基于Intel 8375C CPU具备2.90GHz主频、64物理核/128vCPU、512GB内存的AWS m6i.32xlarge,测试结果如下:
从测试结果可以看出,阿里云神龙用时195.46秒就完成了数值天气预报计算工作,而AWS Nitro的计算用时为225.59秒,用时长于阿里云神龙云主机。
从总结的神龙 vs Nitro测试结果汇总图表中可以看出,在基础计算性能上阿里云神龙与AWS Nitro,差异相当微弱的情况可以看出,无论是阿里云神龙还是AWS Nitro都在尽全力提升云主机的计算性能,基本上已经将物理CPU的计算性能挖掘到了极致。在对于网络和存储资源分配上二者也根据自身的技术实力,作出了近乎相近的选择。
在应用业务处理性能方面,二者也是各有擅长,但还是要强调一下,有些业务应用性能,不是比数,还是要看具体应用需求,甚至要有选择加以控制。而在数据库、大数据和高性能计算能力方面,阿里云神龙的测试成绩优异。由此可以看出,在硬件规格近乎相同、处理能力十分相近的情况下,通过神龙架构加持,可以使得最终用户在应用场景上获得更好的性能体验,这才是神龙的最难能可贵之处。
综上所述,阿里云的神龙云主机目前确实可以发挥出与真实物理服务器不相上下的计算性能。有人曾经说过,未来算力会像自来水一样方便用户使用。通过这次测试,我想再说一下测试后的感受:那就是“水”与“水”之间还是会有区别。如果是自来水,那就只能是成吨的去买,而如果是矿泉水甚至是功能性饮料,就可以按桶或是瓶去买。未来,可能还会出现去除企业痼疾的药水,想必那样的“水”将会为企业带来更大的价值。因此,我们也会更加期待第四代、第五代的神龙云主机,可以给我们再一次次带来更多的惊喜。
好文章,需要你的鼓励
“未来软件定义汽车”的设想也成为马丁当前运营路线的指导方针,且高度关注数据、零件和资产管理等议题。
AI科技正被应用于诸多复杂问题,其中自然也包括塑料污染。通过对多位科学家和初创企业创始人的采访,外媒InformationWeek整理了塑料垃圾治理工作中的艰难挑战,同时也了解到各方如何在这场抗争当中运用AI科技。