云计算市场争夺阿里云做为名副其实的国内业界第一,名声很是大,不过最近 IT 之家的事闹出来以后,我有点庆幸最终没有选择它。腾讯云算是业界老二,并且有着腾讯这个强大的靠山,云服务产品的种类和质量都不错。mysql
上个月阿里云在云栖大会上宣布降价,昨天腾讯云方面也推出了全线降价活动,对包年包月产品均提供了大幅度的降价优惠。阿里和腾讯在云计算领域之争继续上演,双方都想经过价格优点带来用户的高增加,抢夺市场份额。sql
这对于云计算用户来讲天然是一件好事,可是若是让价格彻底左右企业或我的用户的购买决策的话,那么最终极可能会出现已购产品没法知足需求,从而不得不被迫迁移的状况。笔者的观点很简单,在考虑价格因素以前,应该先从产品性能、服务等多方面进行评估。数据库
在选择本身的云服务器以前,我也在腾讯云和阿里云之间犹豫过,并对两家的产品作过一些简单的对比。下文中会简要分享一下对比结果。在对比每一款产品时,本文先经过一系列的标准化测试比较产品的性能,而后再结合产品的最新优惠价格因素进行评价。至于两家的产品到底谁的性能更好、性价比更高,一切仍是要用数听说话。服务器
本文采用的测试工具和方法介绍,请查看配套文章:云计算产品性能测试指南。对象存储部分的脚本可在 Github 项目中查看。阅读期间,若是你以为具体对比过程太长,能够直接跳到本文结语部分查看对比结论。网络
选择对比产品腾讯云和阿里云都是典型的 IaaS 服务商,产品种类繁多。限于时间和成本,没办法对全部产品进行一一对比,只能有选择性地比较一些基础产品和服务。多线程
根据 AWS Web 应用参考架构,一个高可用、可伸缩的网站至少须要使用如下云计算资源:云服务器、云数据库、对象存储服务、负载均衡、内容分发等。所以咱们在本文中主要对比云服务器、云数据库和对象存储这三个比较基础的产品。架构
网站参考架构图:以 AWS 服务为例。并发
对比产品的英文简称,下文在谈到对应产品时,将使用其简称表示。负载均衡
云服务器是全部云计算服务商提供的最基础产品。厂商通常会根据分配的资源划分云服务器的级别和规格。可是因为采用的基础硬件、架构和调优技术存在差异,相似配置的云服务器之间也可能有较大的性能差别。模块化
若是想了解并比较不一样厂商云服务器的差别,最好的方式就是运行基准测试。性能测试准备在开始测试以前,咱们先在两家建立相同配置的两台云服务器,尽可能确保测试结果之间具有可比性。付费方法均采用按量计费,使用包年包月服务器进行测试的成本较高。
腾讯云和阿里云针对按量计费的云服务器,均要求帐户内有必定的余额:腾讯云好像没有最低充值要求,充值 10 元便可;阿里云要求帐户内至少有 100 元余额。
测试云服务器的具体配置以下:
这里指出一点,因为阿里云 ECS 云硬盘最小为 40G ,而腾讯云 CVM 默认 Linux 系统赠送 20G ,为了在后面对比两者价格时有可比性,将 CVM 的云硬盘调整为 40G 。
除了系统盘默认大小不一样外,测试云服务器在 CPU 、内存、操做系统等方面均为同一规格的配置。这个规格的配置也是中小型网站部署的推荐配置,应该可以知足大部分用户的需求。性能测试过程因为测试的流程比较长,在本文中只简要介绍下所使用的工具及对应关注的指标。具体的测试操做步骤,我会在云计算产品性能测试指南中介绍。
在测试云服务器以前,我参考了许多相关评测文章,最终决定使用以下工具和指标:
有关其中所使用工具和指标的具体说明,请移步到这里:云计算产品性能测试指南。
性能测试结果GeekBench 会将测试结果上传到本身的网站,本文测试结果的访问地址以下:
各项指标结果汇总以下:
从数据来看,腾讯云的 CVM 在 UnixBench 和 GeekBench 两个综合性测试工具下的得分都高于阿里云的 ECS 。
CPU 延迟和内存性能方面, ECS 略胜一筹,可是优点不大。在磁盘 I/O 性能上,阿里云的表现接近在启动实例配置时所介绍的 500 IOPS 。可是与腾讯云相比逊色很多,CVM 的磁盘随机读 /写的 IOPS (每秒的输入输出量,或读写次数)均在 4000 左右。
其实看到两者在磁盘 I/O 性能上差距竟然这么大,笔者刚开始很诧异,还觉得测试命令输入有误,不过反复测试确认以后,能够证明这个数据并无错。同时也向客服方面了解,获得的回复是: CVM 的磁盘 I/O 最大性能指标的确能够达到 4000 ,可是并不承诺一直保持该性能。这点能够理解,随着租户的增长,最大性能指标颇有可能会逐步降低。
最后要注意的是,虽然咱们使用了知名的基准测试工具,可是具体的数据可能并不能精确地说明云服务器的性能。由于云服务器的性能和相邻租户使用状况是相关的,根据其余租户的使用状况而不一样,所以以上数据仅做参考使用。
考虑价格因素最后咱们来加入价格因素。阿里云此前在云栖大会上宣布云产品大幅降价,近期腾讯云方面也趁着双十一宣布了一轮降价,那么咱们结合上面的性能测试结果,来看看降价以后两家的性价好比何。
上图中的价格信息取自 11 月 4 日建立实例时显示的价格。
从包月费用来看,腾讯云 CVM 比 ECS 要贵那么一丁点,不过考虑到它的性能评分就会以为贵的物超所值了。可是从以后的2、三年优惠价来看, CVM 的费用反而要低于 ECS 相应期限的成本了。若是两家的降价幅度相同的话,那价格应该是阿里云一直便宜一些才对啊?
确实,背后的缘由就是在于两者的降价幅度不一样:阿里云是中国区域实例最高 3 年 5 折,带宽和系统盘并无这么高的折扣,只有 8.5 折。
相比之下,CVM 是真正的全线降价,三年实例、带宽和系统盘费用都是 5 折优惠。
所以,这段时间内购买腾讯云 CVM 的性价比是要高于阿里云 ECS 的,尤为是购满 2-3 年的话。
咱们接着对比两家的基础云数据库: CDB 和 RDS 。
目前虚拟化技术已经取得很大的进展,能够将物理机虚拟化为多个云服务器,并且能作到整体性能的损耗最小。所以,网站的性能差、响应慢,可能不是你的应用代码写的很差,瓶颈极可能就在于云数据库的性能。所以,选择云服务商的云数据库性能,也是决定购买决策的一个重要因素。
因为 MySQL 是网络上使用最为广泛的数据库,腾讯云和阿里云两家基础的数据库产品也都是基于 MySQL 的,所以在这项评测上咱们选择 MySQL ,版本为 5.6 。
测试准备工做两家的云数据库目前只提供一种配置类型,分别是高 IO 版( CDB )和双机高可用版( RDS )。所以在这项测试中,使用一组彻底相同配置的云数据库是不可能,只能转而使用同价位级别的服务器。
基于上述缘由,咱们分别在腾讯云和阿里云建立最低配版的云数据库( CDB 和 RDS )。
具体配置以下表所示:
从官方划分的类型和内存大小来看,这应该是一组可比较的实例。另外,为了下降测试时网络的影响,咱们继续使用对比云服务器时建立的实例,来运行测试代码。
测试过程MySQL 云数据库有许多性能测试工具,如自带的 mysqlap 。本文所选择的是 sysbench 。
Sysbench 是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各类不一样系统参数下的数据库负载状况。还能够用来测试 CPU 性能、磁盘 I/O 性能等指标。咱们用到的是其提供的 OLTP 基准测试,默认支持 MySQL 数据库。
Sysbench 的安装及测试方法请看云计算产品性能测试指南的云数据库部分。本文中执行了随机读写、随机只读两种测试。
OLTP 测试输出结果以下图所示:
腾讯云 CDB : sysbench 随机只读测试结果
咱们须要关注的数据包括测试完成的事务总数,即图中的 read/write requests ,表示数据库的吞吐量;以及平均请求时间,即图中 per-request 数据下的 avg 对应的值,表示数据库请求的延迟。
性能测试结果这里只用到了一种测试工具,并且测试的类型也很少,所以很快咱们就能够获得测试结果,将其中咱们须要的数据提取出来,能够获得下图中的对比数据。
从结果能够看出,腾讯云 CDB 的数据库读写请求吞吐量相比 RDS 来讲高不少,是后者的约 6-7 倍左右,请求的响应时间也很是快,在 10ms 之内。高 I/O 版本的表现的确强劲。
考虑价格因素最后咱们考虑两者的价格因素。
两家最新的优惠价格对好比下:
以上价格信息取自 11 月 4 日建立实例时显示的价格,区域分别为: CDB 广州, RDS 华南 1
至于另外一个费用来源——网络流量费用,若是使用两家对应的云服务器的话,与云数据库之间就是内网流量,应该都是免费的。因此流量费用问题能够忽略。
从上图咱们能够得出,两家在包月价格上差别不大,可是就这次降价幅度来看,腾讯云 CDB 的优惠很是之高:2、三年的优惠价( 4 折、 3 折)是 RDS 的一半;一年、二年和三年购买期限处在同一个价位段,并且买两年的价格比一年还低。
若是 Web 应用要求大量快速的数据库读取操做,那么在购买期限为2、三年的状况下,配置两台 CDB 高 IO 版也比选择 RDS 的性价比要高。
若是数据库请求在 RDS 测试结果以内,使用期限也不长,那么能够考虑使用 RDS 。
另外提示一点,虽说 CDB 的版本介绍为高 I/O 版,可是据官方的产品文档,每个 CDB 实例都作了实时双机热备,所以在可用性方面的表现应该也不会差太多(这里咱们没有对此进行测试)。
对象存储服务的对比有点麻烦,没有比较好用的基准测试工具。在准备测试以前,我发现 Intel 公司开源了一个专门测试云对象存储的工具,叫作 COSBench ,不过惋惜的是只支持 Amazon S3 等国外云厂商的服务,不支持腾讯云和阿里云。固然好像能够本身实现对应的适配器,可是对于本文这个较为简单的评测来讲,有点太过麻烦了。
所以,在对比对象存储服务时,我使用两家提供的 Python SDK ,编写了测试脚原本统计上传、下载和删除等三个任务的用时。注意,这里并无测试高并发的状况。
性能测试方法为了控制网络环境对测试结果的影响,我在腾讯云和阿里云各自同区域的云服务器上进行测试,这样不只测试起来会比较方便,并且能确保测试结果准确有效。我在两家建立的对象存储 Bucket 都是位于华南区的,所以在相应区域分别建立了一台云服务器实例。
同时,为了尽可能模拟实际用户的使用场景,咱们选择 50KB 、 2MB 、 50MB 三种级别的文件进行测试。通常网络图片的大小在 50K - 2MB 左右,经过这两个级别文件能够测试图片数据存储的效率。另外 50MB 级别用于测试大文件存储性能。
具体来讲,咱们经过 dd 命令生成:
10000 个 50KB 文件
1000 个 20MB 文件
100 个 50MB 文件
测试时统计文件上传 /下载 /删除用时等指标,取平均值(单位毫秒)。在测试小文件下载用时时,并无将文件保存到磁盘,避免了磁盘成为性能瓶颈。
性能测试结果因为测试文件数量很多,整个测试脚本跑下来可能要一个多小时。最终针对 COS 和 OSS 的测试结果(均为单个文件平均值)以下。
50KB 小文件
在 50KB 小文件这个类别中,阿里云 OSS 的上传、删除用时表现不错,小文件下载用时方面腾讯云 COS 用时较少。
2MB 小文件
随着文件大小的增长,腾讯云 COS 在上传、下载用时这两项指标上开始超越 OSS ,差距以倍数计。不过 OSS 在删除用时上仍然保持在 10ms 左右。
50MB 大文件
因为 50MB 文件的上传、下载、删除用时之间级别相差较大,所以我在绘制图表时将纵轴改成了对数可读,方便阅读。本文测试的实际数据以下表所示:
在上传大文件时, OSS 与 COS 之间的性能差别显得尤其突出。
综合来看:
阿里云 OSS 在处理文件上传时,随着文件大小增长,性能在逐步降低;下载用时与 COS 相差不大;文件删除用时均优于 COS ,不过文件越大,用时会有对应增长。
腾讯云 COS 在文件上传上的性能比较突出,尤为是大文件;下载用时表现也不错;文件删除虽然整体不及 OSS ,但每类文件删除用时均保持在相同的水平。
若是将三个指标结合在一块儿,腾讯云 COS 的表现要好于阿里云 OSS 。
考虑价格因素咱们接下来看价格因素,以一个想象中的网站示例来对比。
假设一个网站的存储数据有 1.5 TB (图片、音频、视频),每个月产生流量 600 GB ,月 PV 大约 300 万,同时每个月读请求 600 万次,写请求 30 万次(平均日请求 21 万)。
咱们使用上面的网站数据,经过官方提供的价格计算器(COS、OSS)来计算使用 OSS 和 COS 的价格。
因为腾讯云 COS 目前只提供按量计费模式,所以对比的计费方式均选择为按量计费。
结果如所示:
阿里云 OSS 按量计费价格(区域选择为华南): 616.7 元 /月。
腾讯云 COS 按量计费价格: 593.4 元 /月。
上面在计算价格时,并无加入 CDN 因素。不过两家在介绍产品时都提到了,若是设置 CDN 加速或回源,价格会更低。
腾讯云在上面的计费对比中胜出的缘由,可能与其推出的免费额度有关。目前,每一个 COS 用户都有每个月 50G 的免费存储空间, 10G 的免费流量,以及 100 万次免费读请求和 10 万次免费写请求。阿里云在 2015 年时曾推出过免费 OSS 额度,可是目前已经没有了。
结语至此,咱们已经完成了对腾讯云和阿里云三个基础性云计算产品的评测对比,兼顾了性能指标和价格因素。具体的评测结果总结以下:
云服务器:同等配置下,腾讯云 CVM 的总体性能高出阿里云 ECS 很多; CVM 的包月费用略高于 ECS ( 3 块钱),可是这次降价幅度比 ECS 更大,一年期以上购买 CVM 的性价比更高。
云数据库:因为两者类别不一样,测试了各自最低等级配置的 CDB 和 RDS , CDB 在吞吐量和延迟两项性能指标上均大幅领先;同时降价力度也大于 RDS ,所以能够说 CDB 的性价比远高于 RDS 。
对象存储:在大小文件的上传、下载和删除几项指标上,腾讯云 COS 和阿里云 OSS 各有得分, OSS 在文件删除上表现不错,可是在大文件上传上要逊色很多; COS 在各项指标上的表现均可圈可点。
所以,仅仅从这三项产品的性价比来看,腾讯云此次降价进一步增长了其产品的优点。若是让我在这场价格战下选择云计算服务商的话,我会选择腾讯云。而这也是我以前迁移网站时所作的选择。
不过话又说回来,要评估一家云计算厂商,除了性能和价格以外,还要考虑可用性、可靠性等其余诸多指标(各家之间的差别可能不大)。对后者进行评测涉及的操做更为复杂,并非本文所能涵盖的。而我上面所作的选择,也主要是基于性能和价格两个因素来考虑的。
因为时间有限,没法将国内其余云计算厂商的产品一并加入测试,欢迎有兴趣的朋友按照本文所介绍方法对本身所使用的云计算产品进行测试,并将结果分享给我,方便你们参考。也但愿本文可以帮助你们选购到满意的云计算产品。
本文和配套评测指南中若有任何错误,还请你们指正。