2020年接近尾声,又到了年底盘点的时刻。
今年的云计算市场格外热闹,科技抗疫让云计算从幕后走到前台,让人们近距离见证了信息技术的强大力量;“新基建”掀起的信息化热潮下,云计算成为绝对的支撑主力;企业数字化转型迫在眉睫,“上云”也一举成为今年最火的关键词之一。
提到“上云”,首先需要选定云服务商,但是市面上提供云服务的厂商众多,服务质量良莠不齐,究竟该如何选择?目前国内主流公有云厂商包括阿里云、腾讯云、金山云、华为云、AWS等,从一些标配功能来看,各家云相差无几。此处我们选取云服务中最核心的产品——云服务器,来作为对比标的,一探究竟。
本测试在尽量相同的测试环境下,提供客观公正的测试数据,从技术层面对不同厂商的云服务器进行性能与性价比测评分析。基于公平的原则,我们尽量以相似机型、相同规格配置为测试对象,分别选取了AWS通用实例m5,阿里云通用型g6,腾讯云标准型s5、金山云标准型s4、华为云通用计算型s6。
下面我们将分别从价格以及云服务器计算、存储、网络三个维度进行测试指标的详细对比,并分析其在具体应用场景下的性能表现。
测评对象
AWS阿里云腾讯云金山云华为云
云服务器类型
每个厂商都在北京地区(AWS为韩国首尔地区)开启一台实例,均为搭载英特尔的Cascade Lake CPU的机型,同样选择8核32G的机型,详细配置如下:
云服务器价格
由于企业对服务器的性价比比较关注,我们首先来调研用户最为关心的问题——价格。下图为本次测评各配置机型在北京地区(AWS为首尔地区)的月单价,所有云服务器均以官网实时购买价格(折前价格)进行记录对比。
调研结果:
在价格上,金山云s4有较大优势,是唯一每月单价低于1800元的云服务器,其次为华为云s6,定价也低于2000元,阿里云g6与腾讯云s5定价略高于2000元,而来自海外的AWS m5定价最高,达到2710.3元。
性能测试过程与结果
对不同厂商的服务器价格初步了解后,接下来我们进行服务器的性能测评,包括云服务器的三大关键性能指标(计算、存储、网络)以及在两个具体应用场景(MySQL和Redis)的压测表现。
一、计算性能
CPU为云服务器提供算力。做任何的业务计算都需要占用大量CPU的运算能力,比如直播等视频编解码等。业务高峰期CPU的利用率经常会达到90%以上。CPU测试使用SysBench工具的CPU压测功能进行测试,CPU的每秒计算次数(events per second)越多则表示性能越好。首先检查安装环境,进行编译安装。测试命令如下:
sysbench cpu–cpu-max-prime=20000 –threads=8 –time=50 run
参数说明:
–cpu-max-prime: 素数生成数量的上限,本次我们设置为20000
–threads: 线程数,设置为8,表示启动8个线程进行素数的计算
–time: 运行时长,单位秒,设置为50,表示sysbench 在50秒内循环往复进行素数计算
内存是除CPU之外,决定计算性能的关键性因素,尤其是针对大量访问内存的场景,如关系型数据库等。内存性能最主要的两个指标为内存带宽和内存延迟,本次采用基准测试工具Stream测评Copy(复制)、Scale(乘法)、Add(加法)以及Triad(三者复合)四种操作下的表现。
说明:
以上测试中,充分考虑了内存容量的需求。 测试过程中,使用到的内存容量要大于处理器内的缓存,只有这样才会有内存的操作,而不仅仅是对处理器内缓存的操作。 单位操作内,访问内存次数越多,越能够掩盖访存延迟,带宽越大。单位操作内,操作越复杂,操作完成时间越长,导致整个操作循环完成的时间越长。因此Add和Triad理论上测试带宽应大于Copy及Scale。内存延迟表示系统进入数据存取操作就绪状态前等待内存响应的时间。内存延时越小,对云服务器的性能影响越小。本次采用Intel MLC免费内存测试工具。
测试结果:
从CPU性能看,金山云s4与华为云s6在Add和Triad操作中内存带宽达到7000+MBps,相对于其他云服务器具有压倒性优势,能够更及时地与CPU交换数据。
内存方面,相同时间内,金山云s4与华为云s6计算次数最高,每秒计算次数都达到了3300次以上,其CPU性能优势明显。其他三家云服务器则在2600-2900次之间,表现欠佳。其中排名最高的金山云s4每秒计算次数高出平均值13.3%。
金山云s4内存延时最低,为82.2ns,腾讯云s5与华为云s6也在90ns之内,阿里云g6和AWS m5在内存延时都超过了90ns。
综合以上三项指标,金山云s4在计算性能上表现最为突出,其次华为云也较为优异。
二、存储性能
磁盘性能通常选用IOPS和IO时延两大指标来衡量。IOPS影响着单台云服务器能承载的业务量。业务场景可分为查询和写入两种,查询场景一般会使用很多缓存,而写入场景就需要数据及时落盘,要求提高数据的写入并发能力,需要很高的存储IOPS。存储读写延迟则影响着用户的体验,延迟越低用户下单的响应速度越快。
本次测试选择FIO测试工具,使用libaio引擎测试(4K数据块),随机写、随机读,测试生成的文件大小为200G,队列深度分别为1*1和7*32,观察磁盘每秒随机读写的操作次数以及平均时延。
测试结果:
由上述“随机读写IOPS”图中可见,在队列深度1*1时,阿里云g6读写最均衡、整体领先,华为云s6的读数据单项排名第一,其他三台云服务器表现相差不大;在队列深度7*32时,华为云s6表现出极大优势,读写IOPS均超过33000,阿里云g6和金山云s4处于第二梯队,腾讯云s5和AWS m5则表现次之。
平均时延方面,在队列深度1*1时,阿里云g6读写最均衡、整体时延最少,其他四台云服务器相差不大;在队列深度7*32时,华为云则要领先其他四台云服务器,金山云s4和阿里云g6次之。
三、网络性能
PPS是每秒传输的数据包数量,直播等网络要求较高的场景尤其关注PPS指标。单实例PPS越大,网络性能越强,往往意味着可支撑更大的业务量。云服务器PPS是内网性能的核心指标,影响内网环境下的服务交互。
本次采用Netperf测试工具查看基于TCP或UDP的网络传输性能。此次测试通过6台辅助机器同时向被测云服务器打流UDP小包(1 byte),统计云服务器每秒收到包的数量。通常情况下,平均PPS越大代表内网质量越好。
测试结果:
测试数据可看出腾讯云s5平均PPS排名第一,与金山云s4和阿里云g6同处第一梯队,每秒可处理超过80万个包,网络质量较好。
四、应用场景
数据库是云服务器的一个典型应用,其性能状态通常可以反映云服务器的CPU、内存和磁盘性能,能更较好地体现出云服务器的差异。此次测试选用最常见的两种数据库:MySQL和Redis。
数据库应用场景选用SysBench为测试工具,可评估不同系统参数下的数据库负载情况。我们使用SysBench模拟生成2000万条数据记录,同时开启500个线程写入一张库表。每秒请求数QPS与每秒事务数TPS数值越大,则表现越优异,测试总耗时与平均时延数值越小,则表现越优异。
Redis压测可以用自带的redis-benchmark工具,可以简单地模拟多个客户端同时发出若干请求。配置两台云服务器,分别作为客户端与服务端进行压测,获取ping、get、set和mset四种方式下的每秒查询数。
测试结果:
华为云s6各项指标都很领先,金山云s4也不错,阿里云g6在MySQL场景下表现较为突出,而腾讯云s5在Redis场景下表现出色,而AWS m5应用于Redis由于镜像版本原因,无法真实还原能力,因此此项测试AWS m5不具备参考价值。
测评总结
将上述每项测试中云服务器的表现排名汇总如下,分为四个部分:计算、存储、网络、应用场景。我们为每个部分不同的指标根据测试结果赋上相应的分数,其中第一名为100分,第二名为95分,第三名为90分以此类推(未获得准确结果的测试项分值为平均分,即92.5分);再为每个部分赋上权重比,云服务器的计算性能为最重要的指标,权重为40%,存储性能其次为25%,网络性能由于只有一个测试指标所以权重为15%,应用场景的权重为20%。总分由每个部分分数乘每个部分权重再求和得出,每个部分分数由每项指标的平均分数乘每项指标权重再求和得出。
计算(40%)
计算性能中,CPU与内存权重相同,各为50%,由此可得:
计算成绩=CPU分数×50%+内存平均分×50%
存储(25%)
存储性能中,IOPS与lat权重相同,各为50%,由此可得:
存储成绩=IOPS平均分×50%+lat平均分×50%
网络(15%)
网络方面只有一个指标,所以其本身成绩即为网络部分成绩
应用场景(20%)
应用场景中,MySQL和Redis权重相同,各为50%,由此可得:
应用场景成绩=MySQL平均分×50%+Redis平均分×50%
总成绩=计算成绩×40%+存储成绩×25%+网络成绩×15%+应用场景成绩×20%
综合汇总的数据可以看出,金山云s4和华为云s6这两款机型在性能测评中较为领先,分别位于第一和第二位。其中在体现计算能力的CPU和内存上,金山云s4表现不错,各项排名第一;华为云s6在存储性能上比较领先;网络性能上腾讯云s5表现不错;MySQL和Redis两大应用场景金山云s4与华为云s6互有胜负。
最后再让我们看看每个机型的性价比,用性能测评总评分数除以他们各自的价格得出:
虽然差距不大,但可以看出,金山云s4和华为云s6是性价比较高的机型。
总体而言,几家厂商的云服务器都各有优劣。金山云s4在此次测评中,各项测评结果都表现优异,数据比较亮眼,性价比也较高。用户在选型中,可参照以上测试结果及数据进行决策