上个月,笔者对国内两大云厂商(阿里云和腾讯云)的云服务器、云数据库和云存储三种产品做了性能评测,算是对两家的部分计算和存储产品(数据库也可视作一种存储形式)做了简要对比。虽然评测文章在 V2EX 等社区的反馈还不错,但确实还存在不少缺失。除了不好评测的售后服务等指标外,还缺少了对其他使用更为普遍的云存储产品。
因此,笔者近期抽空完善《云计算产品性能测试指南》,新加入了对两种云存储产品(云盘)的性能和价格对比。本次测试总计耗时 20 多天,测试的强度和时间都非常充分,本文将记录此次测试的过程和对比结果。
云存储类别下,目前两大云产商提供了以下产品:
可以看出,阿里云的云存储产品类别更为丰富,云计算先行者的优势突出。
在上述六种产品中,笔者上次已经对比过对象存储。内容分发网络( CDN )测试起来花的时间又特别长,进行有意义的比较需要的数据特别大,而且目前没找到自动化的工具,因此这次不考虑测试 CDN (欢迎推荐可以自动化测试 CDN 性能的工具)。
那么剩下的两家均提供的产品,就是块存储( Block Storage )了。块存储,简单来说就是提供了块设备存储的接口,一个硬盘就是一个块设备。在云产商提供的产品中,所谓的普通云盘、高效云盘、 SSD 云盘,都是块存储设备。
如果你对存储类型不太熟悉,建议阅读以下文章:
上一篇评测文章中,其实也对普通云盘的性能进行了对比,但包含在云服务器性能测试中。对于选择普通云盘做对比,有的读者也提出了异议。
确实,企业用户一般不会用服务器的本地存储保持核心数据,因为本地磁盘的数据迁移困难,而自建 raid5 磁盘阵列的数据持久性页不高,因此大多采用 SSD 云盘或高效云盘等分布式存储成为主流选择。一线云厂商比拼的也主要是分布式块存储,如 AWS 的 EBS 就是一种分布式块存储设备。
为了较为完整地比较两大厂商的块存储产品,笔者近期对两家的高效云盘和 SSD 云盘进行了压测,算是对上一篇的补充。期间犯了不少错,多花了不少冤枉钱,不过总算最终得出了比较可信、直观的数据。
在介绍测试详情之前,先来看一看厂商对自家产品的描述。
在各自的产品介绍页面(腾讯云、阿里云),均给出了详细的性能指标及具体的计算公式。
min(1000 + 6 * 容量, 3000)
min(50 + size * 0.1, 80)
min(30 * 容量, 20000)
min(50 + size * 0.5, 256)
min(1500 + 容量 * 8, 4500)
min(75 + size * 0.147, 130)
min(容量 * 24, 2400)
min(150 + (容量 - 250) * 0.147, 260)
其中:
上述三项指标中,两家只给出了 Latency 的数值范围。不过,这个可以说是最重要的性能指标。其他指标不变的情况下, Latency 为 1ms 的性能是 3ms 的 3 倍。
另外,从给出的计算公式中,无法直观地比较 IOPS 、 TP 。因此,笔者用绘制了云盘性能与容量( volume )的关系图。
上图中,红色虚线为腾讯云云盘,蓝色实线为阿里云云盘。
由于腾讯云的云盘最大容量为 4000GB ,而阿里云为 32678GB ,但是为了方便查看,只绘制出了容量在 [0, 4000]
范围内的性能数据。另外,在图中以 Hybrid 代称高效云盘,下文同。
从上图来看:
不过,以上只是厂商预期的性能数据,不代表产品的真实性能就是如此。产品实际表现如何,与预期性能差距有多大,还需要我们亲自测试、使用才可得知。
在开始测试之前,笔者在两家产商分别购买了测试服务器及云盘。
测试所使用的虚拟机配置为:
选取的测试云盘如下:
测试阿里云的 500GB SSD 云盘时碰到了两个大杯具,首先是余额不足导致测试程序中断,一切重来。。第二个杯具和 SSD 云盘的性能有关,具体下文中会提到。。。
下文中,笔者不会具体介绍测试步骤,只说明执行了哪些测试及测试结果,具体步骤请看此前在 Github 上分享的项目:CloudTesting/test_cbs。
一般来说,块存储性能主要看 IOPS 、 Throughput 和 Latency三个指标,厂商也大多提供这三个指标的峰值作为购买参考。
上一篇评测中,笔者就是使用 fio 对普通云盘进行测试,对比了三个指标的差异。不过现在回过头来看,测试的压力还不够大,使用的块大小、队列深度还不够全,虽然最终结果差异或许并不会太大。
因此,这次针对高效云盘( HDD+SSD )和 SSD 云盘的测试,笔者将根据 SNIA 发布的企业级 SSD 评测规范( Solid State Storage Performance Test Specification Enterprise v1.1 )进行,以下简称该规范为 PTS 。
SNIA 是存储网络行业协会(Storage Networking Industry Association , SNIA)的简称,这是一个由厂商和大学成立的行业组织,致力于开发和推广存储系统标准。
除了 IOPS 、 Throughput 和 Latency 三项基础测试外, PTS 还包含了以下五种测试:
SNIA 官方有提供测试服务,但是收费,而且也不适用于云存储设备。
因此,笔者选择了一家云计算公司根据 PTS 规范实现的自动化测试库(代码地址:https://github.com/cloudharmony/block-storage),其中包含了 IOPS 、 TP 、 Latency 、 WSAT 和 HIR 五类测试,其他的没有实现。
SSD 云盘的测试中没有 WSAT 和 HIR 两项,具体原因后面会提到。
注意, PTS 测试中所有 fio 命令的队列深度均为 64 。具体测试细节请看官方提供的 PDF 文件。
根据 PTS 规范,每项 SSD 性能测试需要经过1 、净化、 2 、准备工作负载、 3 、进入稳态、 4 、测试等四个环节,因此整个测试过程用时非常长,而且云盘容量越大,耗时越长。笔者在测试时,平均每块云盘大概花了 2 天的时间。由于各种原因,这次至少买了 10 块云盘做测试,因此也就有了标题中“ 20 天持续压测”的说法。**
以腾讯云 500G SSD 云盘的测试时间为例说明:
此次测试采用的是第三方提供的自动化测试库,整个步骤都是可重复的,对测试数据有疑问的同学可自行验证。在这里说明下测试所需时间,是为了提示大家启动测试程序后该干嘛就干嘛,同时保证账户中有充足的余额(尤其是后者)。
在介绍测试结果之前,说明一下对两家厂商测试过程的差异(云盘均为直接格式化,未分区)。
经过漫长的时间,上周末终于完成了对 6 块云盘的 IOPS 、 TP 、 Latency 、 WSAT 、 HIR 五项测试。
测试数据大约 190MB ,下载地址为:https://pan.baidu.com/s/1i5BJZCD,提取码: e2xd 。其中,文件夹的命名规律为:厂商_云盘类型_容量
。除了 aliyun_ssd_500x
和 aliyun_ssd_250x
外,每个文件夹下均有一个 report.pdf
文件,为测试程序自动生成,里面包含了测试结果、数据和图表。
另外,笔者用 Highcharts 制作了一些可交互图表,可用来查看汇总后的各项数据。地址如下:http://www.codingpy.com/specials/cbs_test/。
笔者在本文撰写快要结束时,看到阿里云 SSD 云盘的性能比预期的差很多,回头去调查原因。这才猛然发现阿里云 SSD 云盘必须搭配 I/O 优化实例才能给发挥最大性能。当时就想破口大骂。。。
踩过这个坑的朋友不知道有多少?
因此,之前的 SSD 云盘数据(即 aliyun_ssd_500x
和 aliyun_ssd_250x
两个文件夹下的数据)就不具备可比性了。笔者只好重开 ECS 进行测试,为了节约时间,SSD 云盘将只测试 IOPS 、 Throughput 、 Latency 这三个基础指标。
本文先对比高效云盘,重新测试完后,过几日再与大家分享具体的 SSD 云盘性能对比。
下面我们来看看高效云盘的测试性能,与产商预期的性能值之间是否存在差异,差异又有多大。
先来回顾一下厂商预期的性能,请看下图左边部分。
上图显示,腾讯云高效云盘的预期性能遥遥领先于阿里云,其中最低的吞吐量都比阿里云的峰值要高。
但是真实测试数据如何?请看下面的测试结果。
首先是 50GB 容量的 IOPS 、 Throughput 、 Latency 三项指标的数据(可点击图片查看大图,或查看交互式图表):
400GB 容量的性能对比(可点击图片查看大图,或查看交互式图表):
<small>图注: RW Ratio 指的是 I/O 操作中的读写比例, 0/100 表示顺序写, 100/0 表示顺序读。</small>
从上述图表对比来看, 可以得出结论 1 :
在 50GB 、 400GB 两个容量级别上,腾讯云高效云盘的各项性能指标表现均优于阿里云,而且优势也比较明显。
接下来,我们比较一下测试值与预期值之间的差异。由于预期值都是理论情况下的峰值,我们从测试数据中提取出各自的峰值。
看完上面的数据,你至少会有这两个疑惑:
第一个疑惑,腾讯云两个容量的测试峰值均为预期值的两倍。产品首页中没有直接说明,只能去翻产品文档,最终在 CBS 使用约束页面中找到了一段解释:
产品文档中承诺的 IO 性能,如 1TB 的 SSD 云硬盘,随机 IOPS 能达到 24000IOPS 。含义是读写可同时达到 24000IOPS , 4KB/8KB 的 IO 都可做到, 16KB 的 IO 大小,则无法做到 24000 (由于吞吐已经达到了 260MB/s 的限制)。
简单来说,就是腾讯云高效云盘的读写操作可同时达到预期性能峰值(数据块 16KB 以下)。这样,腾讯云的数据就可以解释的通了。
笔者选择的测试峰值是数据块 512b 、 50/50 读写比例下的数据,这时读写均达到了预期的 IOPS 峰值,总 IOPS 接近预期峰值的 2 倍。而顺序读、顺序写的值都接近预期的峰值。
而阿里云方面,读写无法同时达到预期性能峰值。
第二个疑惑,阿里云 50GB 高效云盘的 Latency 在正常范围,怎么 400GB 的就超标了?笔者一开始还以为数据错了,为此重开了虚拟机,用 ioping 做了简单的比对。结果如下图:
重新测试之后,笔者确信了此前自动测试库跑出的数据应该是没问题的。至于高时延背后的原因,可能是“邻居”比较多、 IO 操作比较活跃吧。 Latency 的自动测试大概跑了 4 个多小时,重新测试时性能也没有变化,阿里云这个算不算违反了服务协议( SLA )呢?
解决上面的疑惑之后, 我们可以得出以下结论:
下面来看 WSAT 和 HIR 测试的情况。上面提到, WSAT 测试是指在持续应用工作负载,测试性能随着时间如何变化。
WSAT 自动测试最终得出的是一段时间内, IOPS 的平均值,结果如下:
上述数据,与两家厂商预期的峰值非常接近,说明两家的高效云盘能够长时间达到 IOPS 性能峰值。但是这里看不出性能如何随时间变化,必须从生成的 PDF 中查找,笔者截图如下:
从上述 4 张趋势图来看,可以得出结论 4 :
两家高效云盘的 IOPS 表现均比较稳定,几乎呈一条直线,只有阿里云的 400GB 云盘有些略微波动。
最后来比较 HIR 测试的结果。 HIR 主要测试宿主机闲置时间对性能恢复的影响。
从上述 4 张趋势图来看,可以得出结论 5 :
容量越大,似乎闲置时间对性能恢复的影响越明显;阿里云 400GB 高效云盘的性能波动受闲置时间影响较明显。
综合上述五项测试的结果,可以认为腾讯云高效云盘的综合性能应该是阿里云高效云盘的 2 倍以上(结论 6 )。
延续上一篇的风格,在比较完性能指标之后, 我们再加入价格因素。
上图中,腾讯云高效云盘按量计费的价格,为根据官方产品页面给出的定价计算,包年包月价格为单独购买云盘时系统显示价格;阿里云高效云盘的价格根据其给出的费用规则计算。这里说明一点,腾讯云在单独购买云盘时,还只有包年包月这种模式,不够灵活。
从上图对比来看:
一般来说,数据盘中存储的多为持久性数据,以按量付费方式购买的企业用户应该并不多。所以,在包年包月模式下,腾讯云高效云盘的性价比非常高。
不过由于阿里云两种模式之间价格差异小,使得用户在云盘使用方式上更加灵活。在笔者看来,按量计费和包年包月的核心并不在如何收费,而在于云计算产品的使用方式。价格差会使用户倾向于以某一种方式使用产品,而不是根据有业务情况自由选择。
上文中,我们分别从 IOPS 、 Throughput 、 Latency 、 WSAT 、 HIR 五项测试指标,对腾讯云、阿里云的 50GB 、 400GB 容量的高效云盘进行了性能对比。
经过对测试数据进行分析,笔者主要得出了以下结论:
如果你正在考虑采购这两家产商的高效云盘,希望本文对你有帮助。如果你考虑的厂商不是腾讯云或阿里云,可以参考本文中使用的自动测试库进行全面测试。不过别忘了,要想获得最大的云盘性能,则必须购买相应厂商的云服务器,否则云应用的性能反而可能下降。关于如何测试云服务器的性能,请看笔者上一篇评测。
下一篇笔者将对比腾讯云和阿里云 SSD 云盘的性能。
1
EarlGrey OP 大家可能喜欢直接看长文,因此把全文发过来了
|
2
qcloud 2016-12-07 21:44:12 +08:00
不错
|
3
cuebyte 2016-12-07 21:51:05 +08:00
楼主幸苦
|
4
gimp 2016-12-07 21:52:56 +08:00
先收藏
|
5
isphone 2016-12-07 21:55:44 +08:00
收藏
|
6
soho176 2016-12-07 22:05:01 +08:00
我目前用腾讯云 不错哦哦哦
|
7
scys 2016-12-07 22:33:33 +08:00
收藏 -_- 长文有参考价值
|
8
publicAdmin 2016-12-07 23:45:58 +08:00
坐等洗地。
|
9
not404null 2016-12-08 00:03:45 +08:00
坐等某云洗地
|
10
ovear 2016-12-08 00:13:31 +08:00
先前排观看收藏并截图
|
11
lslqtz 2016-12-08 00:46:47 +08:00
坐等某云洗地
|
12
TJT 2016-12-08 01:12:14 +08:00
收藏
|
13
ragnaroks 2016-12-08 08:43:43 +08:00
@千万云
|
14
cxh116 2016-12-08 09:20:40 +08:00 via Android
为啥你家超售的 io 要比别人差?
|
15
enenaaa 2016-12-08 09:43:41 +08:00
不怕不识货,就怕货比货
|
17
xuhaoyangx 2016-12-08 10:51:17 +08:00
1000w 准备好没
|
18
RangerWolf 2016-12-08 11:06:59 +08:00
主体看完了,赞
不过很多人应该是直接跳到最后看结论吧? :D |
19
bsidb 2016-12-08 11:11:36 +08:00 via Android
加油! 这种有价值、硬碰硬的文章赞!
|
20
qqpkat2 2016-12-08 11:22:33 +08:00
我们这种 P 民,还不是哪个钱少用哪个
什么性价比什么稳定性都是浮云 |
21
19zero 2016-12-08 11:25:35 +08:00 1
腾讯软文,鉴定完毕。没猜错的话楼主就是腾讯 CVM 的技术负责人李力吧,编程派也被腾讯收购了,原本都是高质量的干货,现在一看全是腾讯云的软文。
|
22
binarylu 2016-12-08 11:34:28 +08:00
腾讯云的块存储后端是分布式文件系统,阿里云的块存储经测试推断就是本地磁盘(因为测试结果与本地磁盘结果很相似)。( 2 年前测试结果)
|
23
EarlGrey OP @19zero 求收购。我自己网站最近更新比较少,所以这几篇显得比较集中,因为时间比较少,大多是在微信公众号上分享下其他博主的干货。
|
25
zongwan 2016-12-08 12:04:31 +08:00
ali 云最近很多不好的消息。。
所以也比较看好腾讯云。。。 不过最近最关注的是 AWS 楼主有兴趣做个测试 或 扫盲吗。。? |
26
goodryb 2016-12-08 13:00:02 +08:00
随意点进来,居然被楼主点名了
这种东西说白了都是一分钱一分货,云产品也是如此,要比较差距,建议楼主在 AWS 上也测试一把,国内这种比较没啥意思 |
27
VicYu 2016-12-08 13:00:36 +08:00
今天不都在秀女友吗?
为何力哥在秀代码,因为这才是真爱啊! |
28
henglinli 2016-12-08 13:12:26 +08:00 via iPhone
aws 呢?
|
29
J0022ZjV7055oN64 2016-12-08 13:40:05 +08:00 via Android
对于我们这种 P 民 哪个便宜好用用哪个
|
30
whyishe 2016-12-08 14:18:16 +08:00
@binarylu 腾讯云的块存储后端是分布式文件系统,阿里云的块存储经测试推断就是本地磁盘(因为测试结果与本地磁盘结果很相似)。有没有这么夸张啊!
|
32
EarlGrey OP |
33
lilinux 2016-12-08 14:55:04 +08:00 3
@19zero 这位英雄你好,我是腾讯云的李力。因为你的瞎鉴定,我今天在公司被同事黑了一中午[笑着哭]
万万没想到,我一个技术人员成为网红竟然不是因为铁打的技术让人膜拜,而是自带了 pr 属性(有意的合作方请先把大把的钱打到我的账户上) 另外还有 27 楼的 @VicYu ,好像是在跟我说话? [继续哭] 关于本文,跟我是完全没有关系的,我曾经在腾讯云 CBS 团队粗浅的帮过几天忙,可能还不如文章作者对存储系统的评测能力专业。其实对任何评测保持警惕都是很有必要的,而对评测的质疑也很简单,就看这么几点: 1. 评测方式是否合理 2. 评测功能是否全面 3. 评测结果是否可重复 第 3 点是最重要的。世面上为黑而黑的评测确实不少,这个评测的数据我会去找 CBS 的同事问问,其它的质疑方最好也能在技术和具体数据上验证和打脸(而不是来黑我啊) 另外一方面,我统一声明一下:包括知乎和 V2EX 在内,我在互联网留下的所有回复都是我个人的行为,不代表任何公司和组织的观点。至于我前一段时间在知乎上写的一些云计算相关的技术分享,也完全属于此类,其原因是另外一个悲伤的故事,作为新晋网红,有机会再与大家分享。 |
35
Had 2016-12-08 15:13:21 +08:00
|
36
EarlGrey OP |
37
Felldeadbird 2016-12-08 16:20:43 +08:00
阿里云的 IO 业界不是已知慢得吗?
|
38
bleaker 2016-12-08 17:17:21 +08:00
不测一下七牛吗
|
39
anyforever 2016-12-08 17:21:49 +08:00
这两天我发现腾迅云的 cvm 不能自助扩展配置啊。。。这也太坑了,想要升级配置,就得重新买一台,再重新配置运行环境么?。。。
|
40
EarlGrey OP |
41
sopato 2016-12-08 23:49:49 +08:00
先马了再慢慢看。
|
42
KenGe 2016-12-09 08:20:19 +08:00
不错 腾讯云代理商来凑个热闹~
|
43
bulletRush 2016-12-09 14:58:25 +08:00
帮忙打个广告:[[深圳] 腾讯云招聘后台开发工程师]( https://www.v2ex.com/t/320577#reply4)
|
44
bulletRush 2016-12-09 14:59:38 +08:00
@anyforever 什么意思?这两天不能用了?
|
45
anyforever 2016-12-10 07:40:06 +08:00
@bulletRush 不是不能用,是开始先买的低配,后来按别人要求,想提高配置,发现硬盘,内存, CPU 都没有升的办法。。只好又重新买了一个高配的。这哪叫什么云主机嘛。。。
后来查了一下,可以自主升配置的那个叫什么云宿主机来着,忘了产品名字了,价格挺高的, 6K/月,这可用不起。。。 |
46
sumu 2016-12-10 08:33:41 +08:00 via iPhone
笔者在本文撰写快要结束时,看到阿里云 SSD 云盘的性能比预期的差很多,回头去调查原因。这才猛然发现阿里云 SSD 云盘必须搭配 I/O 优化实例才能给发挥最大性能。当时就想破口大骂。。。
看到这就没往下看了,这也太扯了吧。普通用户掉坑可以说平台有坑,你一个想做专业测试的,这么不熟悉也敢测试?那就是一个学习发动机专业的,不管会不会开车,也能去做汽车测试了? |
48
happywowwow 2017-04-13 13:35:53 +08:00
|