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