这几年云存储成为云计算领域最为火热的产品之一,大家众说纷“云”,互联网的未来就是数据争抢的未来,所有数据都会优选存储在云中。
相信大家对云存储的优点都已经有所了解,例如云存储支持按需使用,按需付费,不必承担多余的开销,也无需增加额外的硬件设施或配备专人负责维护。正因为有如此多的优点,市场上云存储公司也如雨后春笋越来越多,但选择太多有时候也意味着无从选择。本文正是通过客观的性能评测告诉大家该如何选择。
一般云存储会分几种类型:对象存储(冷、热数据存储)、块存储、表格存储等,今天主要是评测的是对象存储中的热存储,小编带着大家一起通过性价比的对比方式来给各个云厂商排出名次。
本次入选的云厂商有:AWS,Azure,七牛云,华为云,阿里云等5个厂商,使用同样的评测方法和工具,选取离存储最近的同一供应商的虚拟机,测试环境同样也选用离云存储最近的区域,测试机带宽1000Mbps,为了保证测试公平性不把测试机打爆,测试机的CPU利用率<50%,带宽使用率在<70%,磁盘IO的读写吞吐<80MB/s,尽量让测试机是在舒服的情况下工作。
测试工具和方法
本次性能测试使用开源软件:apache-jmeter-2.13,测试方法是通过调用各个云厂商对外发布的最新版本的SDK(java)来进行上传下载操作,操作的对象大小分别是1KB、10KB、100KB、1MB、10MB、1GB,各个厂商的SDK详细版本见列表,如下图示是一个简单流程图。
A、测试性能指标:
1、Response Time(RT):响应时间,本次比较中RT第50百分位的响应时间。
2、Transactions Per Second(TPS):平均每秒处理的事务数。
B、选取的请求:Get(下载),Put(上传)来测试其性能。
C、价格数据:官网价格(截止到2015年11月)。
性能数据结果
为了模拟真实的用户场景,我们预先在各个云厂商存储中分别压入了接近3000万个对象,涵盖了6个不同尺寸大小的对象,分别是1KB、10KB、100KB、1MB、10MB、1GB,在做下载请求的时候,为了防止有读缓存会影响性能,使用随机获取对象Key值,同时为了不让测试机器成为瓶颈,仅使用3线程操作(1GB文件是1个线程),在每个线程中加入Thinking Time来保证测试机网络带宽不是瓶颈,测试机都选用离云存储相同的区域,例如华为对象存储是华北区,在华为云上购买的弹性云(测试机)也是华北区,阿里云的云存储是北京区的,测试机(ECS)也选用北京区的,小编在测试AWS的时候,AWS的华北区仅仅是预览版,所以选择了AWS的俄勒冈,同样测试机(EC2)选用俄勒冈区,以此类推,这样的做法,是保证测试结果是准确和公正的。
下载(GET)文件性能结果:
结论:如果云服商能够在上下行链路中做更多的优化(如减少数据在各节点间的转发次数,尽量让数据一次性的从存储节点到达最前端的节点),那么大小文件的下载的响应速度就会表现更好。综合从测试结果看来,下载1K,10K的小文件,AWS, Azure相对弱势,而下载1M,10M的大文件,七牛云,阿里云表现更好。
响应时间(RT):
TPS:
上传(Put)文件性能结果:
云服务厂商要在上传方面达到好的效果,通常要做几方面:1. 尽量减少数据的中转环节;2. 数据写入多个节点时,传统做法是从写入节点同时发到多个节点,但是如果从写入节点先发给节点a,再从a发送给节点b,这样就可以避免发送节点带宽的限制。此外,本测试结果只针对服务端上传到云存储,更全面的独立测试还可以围绕客户端进行(比如有些云服务厂商在客户端上传sdk中加入断点续上传功能以便让用户体验更好。)
综合从测试结果看来,写1K,10K小文件响应时间中阿里云与七牛云有突出的表现,写1M,10M,1G的大文件中,AWS性能表现也不错。大文件中,Azure排名垫底。此外,Azure直接上传1G的文件全部都超时失败了,只能通过分片的方式上传,由于测试工具的原因,这组数据仅限参考并不计入性价比。
响应时间(RT):
TPS:
价格数据
现在小编要模拟一个客户真实的场景,来计算一下实际的发生费用,假定一个中小型客户:客户每月的存储空间10T,每天下载流量100G/天,上传和下载的请求次数50万次/天,其中AWS和阿里云的存储分为热存储和冷存储,微软的Azure的存储计费方式有本地冗余和跨区域冗余和只读跨地域冗余。为了统一跟其他厂商一致都选用热存储本地冗余的价格,小编从各个厂商的官网公布价格计算得到下面总价格,详见下表,从总价格列表能看出:最贵的是Azure,最便宜的是七牛,Azure几乎是七牛的2.5倍价格。到这里几乎大部分的客户都有第一个反应,七牛确实便宜,但是还是要从性能性价比的角度来真正评定。
(注:由于各厂商价格经常有浮动,以上价格选用2015年11月份的价格)
价格示意图:
性价比
到了最重要的性价比的环节,我们要清楚知道每一块钱到底能买多少性能,根据上面的测试结果和价格,这样我们可以得到这样一组计算公式:性价比=性能相对值/价格相对值,由于1G文件上传有些厂商没值,小编选用了1K小文件+10M大文件的上传下载作为性能数据,以国内厂商阿里云的OSS性价比作为标杆,其性价比值设置为1,其他厂商来跟他对标情况。根据给出的测算公式,综合性价比排名前三的是:七牛云,阿里云,AWS。 垫底的是跟AWS一样来自海外的Azure。
(注:按照一个用户购买云存储一个月:存储空间10T,流出流量100GB/天,Get和Put请求次数(均25万次/天))
计算公式:性价比=性能相对值/价格相对值
性能相对值=(云存储RT性能相对值/4*60%)+(云存储TPS性能相对值/4*40%)
云存储RT性能相对值=阿里云/AWS(GET1K文件(RT))+阿里云/AWS(PUT1K文件(RT))+阿里云/AWS(GET1M文件(RT)+阿里云/AWS(PUT1M文件(RT)
云存储TPS性能相对值=AWS/阿里云(GET1K文件(TPS))+AWS/阿里云(PUT1K文件(TPS))+AWS/阿里云(GET1M文件(TPS))+AWS/阿里云(PUT1M文件(TPS))
价格相对值=AWS的云存储价格/阿里云的云存储价格
注:/ 符号为除以符号;用阿里云的值作绝对值,另以上RT性能越小越好,所以用阿里云/AWS,TPS性能越大越好,所以用AWS/阿里云;性能取值为50百分位。
结束语:
对于互联网领域的初创企业和转型互联网+的传统企业来说,选择正确的云存储的厂商是创业和转型成功的基本保障。然而对待各种厂商宣传的各种能力,我们要做到心里有杆秤,既不盲目听从厂商性能宣传,也不能仅仅从价格上来做选择。
对于如何评价一个云厂商的好坏,性价比是一种很好选择的方法,当然我们在做选择的时候,还可以通过产品的易用性,厂商的服务质量和能力,以及产品安全能力和产品覆盖区域来做更多的选择。
———————————————————————————————————————————-
本稿件为独立测试,不代表本站观点。