一:首先,思考一个问题:云计算,性能vs稳定性?
自从有了云计算以来,各厂商中一直充斥着各种性能跑分称王的现象:上个新产品或新版本,就扔出一堆性能数据,号称性能是XX的XX倍。听起来的确很牛,然并卵,对于企业上云来说,这些“实验室”数据其实没有太大用处。原因有三:
1.是不靠谱。“实验室”和真正的使用环境差十万八千里呢,就如同高铁在实验室可以跑多快和高铁在正式运营的时候需要跑多快完全是两码事,正式运营时拉着几百号人呢。
2.是不需要。站在大部分企业的角度来说,选择不同云计算厂商时,“性能”不会、也不应该成为最主要的考量指标。现在有很多企业在上云的时候,往往陷入一个误区,要选择最牛逼的性能。但仔细想想,业务真的需要那么高的性能么?性能就像选鞋子,合脚的才是最好的。再说,全球能做到上十亿用户的企业没几家,人家的业务也没受机器“性能”的影响,跑得杠杠的,咱那点小业务,还是先考虑别的问题吧。
3.是不持久。对于最终用户来说,最能感知到的不是一时的性能表现,而是长期的稳定性。举例来说,那么多款手机号称跑分秒杀iPhone,可使用一年后这些手机的卡顿、死机、黑屏和掉电等情况能被iPhone秒成渣。
对于企业来说,什么是上云最需要优先考虑的?真正第一位需要考虑的是稳定性!没有哪家企业愿意自己的业务出现非预期的抖动或中断哪怕一分钟。一分钟对于云计算厂商来说可能没什么,但对于云平台上的企业来说,真遇到业务高峰期,那会是成千上万甚至百万的损失。
所以说:云计算不要“跑分”要“维稳”!
二:既然稳定性是大家在选择云计算的时候需要重点考量的指标,接下来咱们就看看,各主流云厂商稳定性到底如何?
主流公共云厂商稳定性评测
性能极客在几家主流云计算厂商购买了云主机、云数据库和云存储服务,用来评估各个云厂商在稳定性方面的表现。
具体评测方式如下:
1:在AWS、Azure、阿里云、腾讯云以及UCloud购买相同规格的云主机(4核8G)、云数据库(内存6000M左右)以及云存储服务(购买了金山云和七牛的服务);
2:安装评测工具,记录7*24小时的性能表现;
3:计算所有数据结果的变异系数(CV:Coefficientof Variation,标准偏差/平均值,其结果越大,表示这组数据的离散程度越大,也就反映出稳定性不够好)来反映各个服务的稳定性;
这种方法虽然算不上完美,但是却可以很科学地考量各个云计算厂商服务基本稳定性。
最终结果有点意料之外,却也在情理之中(考虑到篇幅原因,每种评测只取了代表性的指标,其他指标结果基本相同)。下面,我们一一来揭晓:
1:云主机稳定性对比
CPU评测:
采用了三种业界常见的CPU性能指标测试方法做7*24小时测试,三种方法得到了基本一致的结论。
Sysbench测试工具计算10000以内所有素数所花时间;
计算5000位长圆周率所花时间;
Ubench评分(采用整数和浮点数混合的计算方法);
这里先列一下计算5000位长圆周率所花时间这个指标的稳定性。
结论:可以看出,AWS的稳定性非常好,不愧云计算老大,阿里云、UCloud和Azure也都表现不错,至少是稳定的,腾讯云则稍显一般,呈现出锯齿状的结果。
内测评测:
工具用的是mbw和Ubench,结果基本相同。这里列了mbw的DUMP内存带宽的稳定性:
磁盘稳定性:
这次的工具是业界常用的FIO,先来看看普通云磁盘(各个云厂商的叫法有些不同)64K读带宽和写带宽的稳定性。
2:云数据库稳定性对比
主流的云厂商现在都提供各种云数据库:MySQL、SQL Server、Mongo DB等等。我们选了最常用的MySQL数据库。工具是业界有名的SysBench,选取了QPS这个指标。
3:云存储的稳定性对比
对于云存储,考虑到存储市场上七牛和金山云比较火热,这里新加了七牛和金山云做比较。通过apache-jmeter-2.13来调用各个云厂商对外发布的Java 版本的SDK来评测get,put,delete和head等基本请求的稳定性,结果基本相同。这里给大家看看get请求的长期稳定性对比。
综合结论
综合上面的云主机、云数据库和云存储7*24小时各个指标的稳定性对比,我们基本上对各个主流云厂商的稳定性有了一个基本认识:
1:总体来说,AWS和阿里云是处于第一方阵,特别是AWS,CPU、内存、云存储都排在第一,只有云磁盘的表现稍微差点;阿里云作为国内厂商排在第二,很多指标和AWS旗鼓相当。
2:云数据库的QPS的稳定性阿里云表现优异。AWS和阿里云都在很早进入云计算领域,一个是国际第一,一个是国内第一正向国际进军,而且各自的技术也都经过海量用户的实战洗礼,在稳定性上面有如此出色的表现并不意外。Azure排在第二方阵,稳定性表现好但不是特别突出。
3:相比较而言,国内的其他云厂商,比如腾讯云、UCloud等的表现各有千秋,尔在一两个指标上表现特别突出(比如UCloud在CPU计算圆周率以及腾讯云在云磁盘读带宽上的表现),但总体起伏较大。
三, 稳定性如此重要,那么,影响稳定性的因素都有哪些呢?
1:影响CPU稳定性的因素很多,其中一个是Turbo Boost功能(AMD的技术叫Turbo Core)的开启。Turbo Boost加速技术,类似于运动员吃兴奋剂,可以显著提升CPU的性能,但这种提升有时间限制,偶尔跳跳频冲刺性能可以。但长期跑,稳定性肯定会出问题,类似抖动曲线。
2:影响内存稳定性的因素也有很多,一个因素是NUMA功能的开启。NUMA技术将CPU和内存进行隔离来提升访问内存的速度。但由于其本身的限制,在隔离的内存用完之后,马上会导致性能的巨大波动。
3:另外,评测过程中还发现了一件有趣的事情,阿里云对磁盘和数据库做了IOPS方面的限制,这明显会影响性能。不过要知道,云计算都是在物理机上做虚拟机,然后卖给多个用户同时使用。只要有一个用户的磁盘IOPS使用量超高,那么同一个物理机上的其他用户就悲剧了,陷入资源争抢中,系统稳定性无从谈起。
这种资源方面的争抢,如果用户少,在使用初期是看不出来的,一旦用户量增多,必然会出现。实际上,在性能够用的情况下,为保证所有用户的稳定性,不光阿里云,AWS、Azure等也都对每个客户的性能做了相应的限流措施,如果想使用高性能,都需要额外申请。这也是通盘考虑到性能和稳定性谁最重要的问题。
云计算比拼性能的时代会逐渐过去,而如何在大规模用户下依然能优雅地为各个客户提供稳定的服务将是最大的卖点,让我们拭目以待。
———————————————————————————————————————————
附:7*24小时原始测评数据图(评测各厂商7*24小时原始的数据图,效果非常震撼,有兴趣的读者可以看看。)
云主机CPU的稳定性
帷幄咨询是我国专注互联网品牌营销落地执行的第三方服务机构;主要服务项目有:全网营销特训营、互联网品牌营销微咨询、互联网思维培训、互联网实效性定制培训系统;助力传统企业互联网品牌转型升级,让互联网思维更加落地,促进线上业务更快发展。