云存储(对象存储)性价比小谈
相信大家对云存储的优点都已经有所了解,例如云存储支持按需使用,按需付费,不必承担多余的开销,也无需增加额外的硬件设施或配备专人负责维护。正因为有如此多的优点,市场上云存储公司也如雨后春笋越来越多,但选择太多有时候也意味着无从选择。本文正是通过客观的性能评测告诉大家该如何选择。
一般云存储会分几种类型:对象存储(冷、热数据存储)、块存储、表格存储等,今天主要是评测的是对象存储中的热存储,小编带着大家一起通过性价比的对比方式来给各个云厂商排出名次。
本次入选的云厂商有:AWS,Azure,七牛云,华为云,阿里云,金山云等6个厂商,使用同样的评测方法和工具,选取同样的一个区域(华北/北京/俄勒冈),测试环境同样也选用离云存储最近的区域,测试机带宽10Mb,为了保证测试公平性不把测试机打爆,测试机的CPU利用率<50%,带宽使用率在<70%,磁盘IO的读写吞吐<60Mb/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小文件响应时间华为云有突出的表现,下载1M,10M的大文件中,AWS、阿里云、Azure性能表现较优,七牛云,华为云基本垫底。
响应时间(RT):
上传(Put)文件性能结果:
综合从测试结果看来,写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,其他厂商来跟他对标情况,能得出如下一些如下的结论:
1、从下图的性价比图示看,阿里云的OSS性价比最高,其次是AWS的S3以微弱的差值位列第二,在业界标称良心价格的七牛居然意外的性价比最差,究其原因,由于七牛是缺省支持CDN,小编测试过程中下载的文件都是随机下载(数据量千万级别,较小概率会碰到重复的文件),第一次下载的速度是证明云厂商的能力,第二次下载证明的是CDN的能力,认不认同?
2、综合性价比排名:阿里云>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百分位。
结束语:
对于互联网领域的初创企业和转型互联网+的传统企业来说,选择正确的云存储的厂商是创业和转型成功的基本保障。然而对待各种厂商宣传的各种能力,我们要做到心里有杆秤,既不盲目听从厂商性能宣传,也不能仅仅从价格上来做选择。
对于如何评价一个云厂商的好坏,性价比是一种很好选择的方法,当然我们在做选择的时候,还可以通过产品的易用性,厂商的服务质量和能力,以及产品安全能力和产品覆盖区域来做更多的选择。