2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 国内外公有云对比:功能介绍 性能测试

国内外公有云对比:功能介绍 性能测试

时间:2022-08-27 05:46:14

相关推荐

国内外公有云对比:功能介绍 性能测试

相信很多个人和创业企业,跟我一样,面对几十家国内外云服务器,不知选择哪一家?

问题导读

1. 国内云商各有什么特点?

2. AWS性能测试中为何性能较低?

3. 本测试中OS性能、IO性能哪些云平台比较稳定?

本原文最早整理发表于米扑博客:

国内外公有云对比:功能介绍、性能测试

一、功能介绍

近一段时间以来,国内外云计算市场再一次风起云涌。这一次热潮与以往热潮最大的不同,就是开始玩真的了。微软、AWS、阿里、百度、新浪、腾讯、360、IBM以及大量新兴企业,纷纷宣布近期在国内公有云领域的大动作,要么就是开始落地运营,要么就是推出大量的新服务,还有的开始大大免费牌。就连电子商务网站如同京东、美团都要进来掺乎一下(详见米扑博客:全球云服务商对比:阿里云,太贵了),要在现在公有云起步阶段站稳脚跟。

另外,百度、腾讯、360面向个人用户推出的免费网盘服务竞争的不亦乐乎。在这个过程中,最受益的当然是广大的用户,因为用户不是仅仅听到各大厂商的忽悠,而是可以实实在在的使用各家的资源和服务,切实的体验云计算的好处。

不过热闹归热闹,当用户真正去选择公有云时,就不难发现一个现实困境,就是如何选择一个适合自己的平台。公有云不像硬件,有着成熟的体系和标准,而用户选择时要考虑的因素也非常多,技术上主要的因素有性能、稳定性、安全性、网络、服务种类等等,而业务上则需要考虑价格、信任度、对自身业务上的帮助等。本文将简要对比下现在国内几个比较火的云平台(面向个人用户的除外,比如网盘),希望给大家一些初步的认识

本文对比的平台有以下:

新浪云(SAE、SCH)

新浪算是国内做公有云较早的厂商了。它的模仿对象是GAE,主要提供PaaS服务,名字也很类似,叫做Sina app engine, SAE。不过,近期新浪也准备推出虚拟机服务,进入IaaS领域。目前SAE支持PHP,Python,Java语言。其使用模式是:用户在本地开发代码,然后上传至SAE环境,SAE端为代码提供了运行环境和存储空间,SAE还提供监控、弹性伸缩等服务。这样,开发者不需要任何运维手段和工具,也不需要自己部署、管理服务器

目前,SAE提供以下4类服务:

存储类,包括MySQL、对象存储、Key-Value存储、Memcached缓存等计算类,包括定时器、图片处理、邮件发送、网页抓取、消息队列等辅助类,包括防火墙,以及一些应用迁移和调试工具扩展类,包括地理信息服务,应该是由第三方提供的服务

SAE的管理界面很明显是以应用为核心的,每个应用的配置、代码及其关联的服务可以独立管理。

从其功能来看,SAE显然是面向互联网应用。

从技术层面来看,SAE的功能已经比较完整。

其优点是运行时间比较久,据官方说法已有52万个应用

不过,SAE的弱点也很明显:

1. 缺乏IaaS能力,这样就对开发者的自由度进行了局限。PaaS虽好,但是限制太多,语言、版本、组件、服务皆不能自由选择。

2. 缺乏与BAT(baidu, ali, tencent)抗衡的杀手锏。之前BAT都没有大举进入云计算特别是PaaS领域,而从今年开始,各家都推出了各自的AppEngine,而且,百度有搜索导入,腾讯有用户导入,他们会对SAE的用户产生很大的吸引力

3. 不提供备案,只对已备案的应用提供托管能力。这就是说,新的应用没法直接部署到SAE上,而是要找个第三方绕一下

百度云(BAE、BCC)

百度云推出的时间不长,与其声势浩大的网盘服务相比,其面向开发者的IaaS/PaaS服务相对有些默默无闻。百度网盘的首页是,而面向开发者的首页是。如果直接搜索百度云,我们会直接进入百度网盘,可见百度对于云的定位还是以消费者为主,开发者为辅。后面为了区分百度云盘和面向开发者的云,我们把后者称为百度开发者云。

尽管如此,百度开发者云还是提供了完整的功能。

从其首页我们可以看出几个特点:

1. 面向web应用和移动应用

2.将端和云整合在一起。尽管百度没有自己的应用商店,但是百度最近收购了91,其企图是通过强化移动入口吸引开发者,这样,百度就有了两个入口(搜索和手机助手)。因此,开发者门户并不是单纯的云服务门户,而是云+端+一系列工具一体的服务平台

下图是其开发者中心的管理门户,这里面渠道管理是指前端(web和app),开放云服务是后台

而主要的云服务都在应用引擎里面

在功能上,开发者云主要提供了AppEngine,称为BAE。这个BAE看起来功能比SAE更强大,SAE有的BAE都有,而且在存储上增加了redis和mongodb,通讯上增加了推送和触发服务。此外还提供了虚拟机服务。目前虚拟机服务只对少数开发者开放。

从文档上看,虚拟机服务支持windows/centos/ubuntu/redhat,规格上最小1核3G,最大4核32G,支持VNC连接虚拟机Console(这样虚拟机无需网络,甚至无需完全启动)。不过,很显然该虚拟机服务能力十分有限,首先它只有临时盘,无法进行数据持久化;其次它缺乏网络、安全支持。所以,目前的功能跟VPS类似,尚不是成熟的IaaS平台

另外,百度云并没有披露其物理机房信息和网络接入情况,目前来看部署应用时无法选择部署位置。这样的话,显然无法实现异地负载均衡和容灾,不太适合规模化应用。最后,与SAE一样,BAE并没有提出SLA承诺

做一个总结,百度开发者云定位在面向Web应用和移动App的PaaS平台,会主要和SAE和腾讯App Engine竞争

腾讯云

最近,腾讯也加入了面向开发者提供公有云服务的行列。目前,该服务只向少数用户开放,我有幸申请到一个账号,可以先睹为快

腾讯云的一个主要卖点是其游戏平台,众所周知,腾讯的主要收入来自于游戏,而腾讯也将自己的平台开放出来,让其他开发商的游戏接入进来,一同做大游戏市场。作为平台提供商,腾讯对于其接入的游戏有一定要求,收入分成就不用说了,除此以外,还需要将游戏托管在腾讯云之上,这也是腾讯云的起源。如今,腾讯把这个云平台开放给其他用户,不仅面向游戏,也面向所有Web和移动开发者。显然,云的利润比游戏低得多,腾讯这样做,主要也是希望聚集开发者,赢得人气

从腾讯云的公开案例来看,现在的用户都是游戏开发商

连入腾讯云的管理界面后,可以看到所有已订阅的服务。目前腾讯云上的服务比较少,核心服务就是3个:虚拟机、MySQL数据库、NoSQL存储。下面逐一了解下每个服务

虚拟机的配置可选范围较大,最小1个共享核1G内存,最大12核60G内存。操作系统包括3种Linux,不支持Windows

部署虚拟机时,没有地方选择部署机房,因此,腾讯云目前只有一个机房,估计在深圳

部署虚拟机后,可以对虚拟机控制,包括:重启、重置密码、回收、格式化。目测每个VM只支持一个系统盘和一个数据盘,而且数据盘部署以后无法改变大小,也无法从虚拟机解绑。腾讯宣布10月18日开始支持云硬盘,应该是对目前功能的改进

目前腾讯虚拟机没有任何安全防护,部署虚拟机后就直接暴露在公网上,安全性上有很大风险

云数据库是基于MySQL做的服务,最大支持600GB,支持7500/秒TPS。管理界面采用phpMyAdmin

NoSQL存储是一个兼容Memcached的高速数据存储服务,估计是借鉴了Memcached的内存存储服务,它支持数据持久化,类似Redis的思路。至于性能,腾讯并未公布

其他的几项服务,主要起支撑作用,比如CDN、云监控、负载均衡。值得注意的是,弹性Web服务也即将推出

综上,腾讯云目前的功能比较有限,而且也没有承诺服务质量,目前还无法做出完整的评价。不过腾讯的定位显然不是只做IaaS,而是希望成为完整的IaaS+PaaS服务提供商,从而支撑以游戏为主的生态系统。

上个月试用了下腾讯云,结果被黑了

腾讯云上来送了1000元费用,于是开个个虚拟机玩了下,总共开了没几天。结果前两天发邮件过来,说欠费800多,就是说不到一个月消费了1800。我赶紧查账单,结果看到了这样的计费

什么?带宽竟然收了600元。赶紧去查一下带宽怎么收费。原来带宽不算在虚拟机费用里面,是单独计费的。具体计费方法,简单来说就是:看你一天当中最大带宽占用,然后按此计费。也就是说,不管你总共传了多少数据,只看峰值,而且一个月里面只看峰值最高的几天。具体价格是这样:

IDC带宽当月总使用量小于等于300Mbps的部分,单价:1.80元/Mbps

IDC带宽当月总使用量大于300Mbps的部分,单价:3.60元/Mbps

我那几天的流量是这样的

因此,就算我一个月只有3天有流量,而其他时间流量为0,那么也按这三天算钱,而每天也是按峰值来算

其实我不记得为什么会有这么大峰值,也许是我下了个软件,也许是被黑了。但无论怎样,我收到一个天价账单(10倍于虚拟机的价格)

但另一方面,腾讯云并没有限制流量的方法,只要开公网ip,用户就要自己限制流量,否则就等着被黑吧

那么另1000块钱是怎么回事?腾讯云每个月会先冻结一部分金额,不管用不用,这样可能月初时账户就成负数了,到月末再把未消费的返还。账号变为负以后,会收到这样一封邮件:

为了保障您的业务能正常运营,请您务必充值缴纳全部欠费,如未能如期缴齐欠费,平台将采取包括且不限于以下措施,以维护平台的合法权益。由此造成的一切损失,由您自行承担:

1、系统自动回收您在腾讯云中所有的云资源(云服务器、云数据库、NoSQL高速存储、CDN所有数据);

2、要求您合法承担所欠金额(如从腾讯应支付给您的其他费用中直接抵扣);

3、法律范围内可以采取的其他措施。

太坑了吧,本来就是预付费还要预付中再预付,还没消费就把钱扣光然后要求充值抵账,电信运营商也没这么狠啊。按第三条,难不成还要起诉我?吓的我赶紧关掉所有服务

阿里云

如果说新浪SAE要做中国的GAE,那么阿里云就是想做中国的AWS。

阿里云早在几年前就布局云计算,时至今日已经小有规模。通过前几篇的分析,不难发现其他几家大型互联网企业的IaaS服务都是刚刚起步,而微软的WindowsAzure也还没在国内正式运营。所以,目前想用IaaS的大中型企业之前基本上只有一个选择,那就是阿里云。不过,目前WindowsAzure已经开始提供小范围使用,再加上其他几个厂商的加入,阿里云未来面临的竞争也会更加激烈。

阿里云的口号是,打造数据分享的第一平台,显然,做IaaS只是一个起步。阿里云在几年前收购了万网,获得了相应的IDC运营资质和用户,也解决了IaaS领域了大部分问题,比如备案、域名注册、安全防护等等。这跟微软与世纪互联合作,IBM与首都在线合作都是一个思路。这几家都是要踏踏实实做服务的,眼光不仅仅只是Web应用和移动应用,还包括了企业应用的范围。

从阿里云的服务类型来看,跟腾讯云十分类似。由于阿里云先,腾讯云后推出,可见腾讯云很大程度上参考了阿里云

在云服务器部分,阿里云提供windows/centos/ubuntu/redhat/debian多种OS,规格上,最小共享核512M内存,最大8核32G内存。全国有两个机房,分别在青岛和杭州

在部署模式上,阿里支持包月包年和按量两种,选择配置时,阿里云会实时计算出价格,这一点十分方便。同时,在部署和取消虚拟机时,阿里云都会短信确认,同时发送管理员密码到用户手机上。这一点上,更符合互联网用户习惯,或者说,跟支付宝是一个风格

从实际使用来看,按量付费十分不好用:部署后无法变更配置,无法增加磁盘,无法修改磁盘空间,无法停机。而且,启动按量付费的虚拟机时,账户余额必须大于100元。对于开发者来说,如果想临时启动一个虚拟机进行调试,就会比较麻烦。包月方式支持配置变更,但是最少也要花每月69元。按量付费唯一一个方便的功能,是支持定时删除虚拟机

包月形式的

虚拟机的管理界面比较简单,具有基本的虚拟机、磁盘、快照、镜像管理功能。虚拟机支持启动停止、修改密码。网络部分的功能十分欠缺

阿里云的磁盘支持快照,可以从快照回滚。不过不能从快照创建新的磁盘。另外,一个磁盘也无法从一个主机解挂,再加载给另一个虚拟机。也就是说,两个虚拟机之间无法通过磁盘、快照等方式进行数据移动,只能在应用层面进行网络拷贝。同时,按量付费的虚拟机只能加载一个数据磁盘,无法实现多块磁盘做条带化。而包月的虚拟机最多有4个数据盘

阿里云的资源管理和资源申请是在两个不同的门户里面。资源申请类似一个购物车,结账后资源出现在管理控制台里面。用户使用的时候,需要频繁在多个界面间切换

云引擎部分,支持PHP和NODE.JS,支持memcache,消息队列,计划任务

云数据库部分,支持MySQL和SQL Server

阿里云最具特色的要算它的存储服务,也正好印证了它的口号,要在数据上大作文章。阿里云在存储上的服务有6项,而存储之外的服务只有5项。在6个服务中,包含关系数据库、对象存储、结构化存储、大数据服务

另外,阿里也仿照AWS,建立了一个SaaS市场,为阿里云上的用户提供了一个用户入口。

阿里云前期积累的用户很多,有赞扬的,也有不断吐槽的,比如博客园。

总的来说,阿里云的优势是进入IaaS领域早,继承了万网的服务能力,提供免费的备案服务,提供免费的网站搬迁服务,这对中小网站十分有吸引力。同时,阿里云的市场推广力度大,广告打的到处都是,今天打折,明天赠送,很是热闹。阿里云的缺点,在IaaS部分缺乏虚拟网络和VPN,无法进行虚拟机组网,无法满足传统应用在在组网上的需求,而在PaaS上,阿里云的能力十分欠缺,这会导致客户粘性差,造成客户十分容易流失

青云

说起青云,很多人可能没听说过,不过,一年之内这个名字必然成为国内云计算热点。青云是一家创业公司,专注做IaaS,目标是超越亚马逊。这家公司成立只有半年,两个月前开始接受试用。它的试用是完全免费的,也不需要邀请,给个邮箱就行。

青云官网:

青云为什么有超越亚马逊的志向?

下面我就简要分析下。青云的CEO richard来自IBM,IBM有蓝云,所以青云的意思很明显,是青出于蓝。Richard是个极客程序员,他另外两个合伙人,分别来自腾讯和百度,而这家公司目前的团队规模,我猜测不超过10人。是不是很有硅谷范儿?Richard在IBM的时候,开发了一个项目,叫HSLT(HighScaleLowTouch),这个产品就是一个IaaS平台,跟青云十分类似。HSLT完全基于互联网技术开发,跟传统的IBM软件开发方式完全不同,其核心思想是基于大规模分布式的低成本硬件,构建高可靠的IaaS平台。HSLT有几个特点,第一是虚拟机部署快,第二是系统支持自愈,第三是全软件实现虚拟存储、虚拟网络。尽管功能上跟Openstack类似,但架构上HSLT跟Openstack完全不同。HSLT从架构上就是为了满足上万台虚拟机部署和管理而设计的,或者说,是为了满足大规模公有云的需求设计的。这个产品是有跟AWS竞争的潜力。而青云不仅具备HSLT的完整功能,还具备了额外的功能,那就是用SDN实现的虚拟网络

青云绝对不是简简单单实现各家都有的功能,而是在几个功能点上做到极致,从而体现它的“酷”,否则,这种创业企业是无法跟其他巨头竞争的。在这几个功能点上,青云可以秒杀国内所有的IaaS提供商,这绝对不是夸大。

下面就眼见为实吧。门户左侧是其提供的服务,似乎看不出什么特别。这几项都是IaaS常见的服务。不过它的门户很清爽,而且将服务实例、日志、账户余额乃至工单都集成在了一起。这就是小而精的好处

青云的奥妙,就在这每个服务里面。只能说,用过才知道

神奇1:虚拟机从申请到部署完成只需要8秒,启动只需要1秒!同时部署10个100个虚拟机也是一样快。基本上,用户只要点击创建虚拟机,一眨眼虚拟机就可以登录了。

要知道,AWS上启动虚拟机,最快也得一两分钟,而国内的IaaS服务,基本都得5-10分钟。那青云是怎么做到的呢?虚拟机的部署,一般过程是:从源存储位置拷贝一个OS镜像作为虚拟机系统盘-〉宿主物理机挂载该系统盘进行配置->启动虚拟机。青云对这个过程进行了优化,在拷贝时采用了Copy on write技术,就是不进行真正的拷贝,而是获得一个快照,并将后续的写操作写入新的空间,这样,虚拟机就可以即时启动。此外,青云对Linux进行了精简,只保留最基本的包,特别精简了自启动服务,这样实现了虚拟机从启动到现实登录界面只需1秒

从操作日志可以看出,不仅是虚拟机创建,基本上所有的操作,都是在秒级完成,可见青云将管理效率追求到极致

因为能做到秒级部署,所以青云提出按秒计费,世界上估计就此一家

神奇2:支持完善的虚拟网络和VPN,而且支持图形化设计

这个功能阿里云现在都还没有,更别说腾讯百度新浪了,而这个功能实际上是企业用户十分看重的,有了这两项功能才能更安全的连接虚拟机,并将云端的虚拟机与企业已有的云之外的服务器对接。虚拟网络的意思,是允许用户自己规划网络拓扑,将虚拟机进行二层互联或者三层互联,同网络内虚拟机可以互访,而不同网络的虚拟机相互隔离。VPN是将远程网络安全接入云网络

下图就是青云管理界面上的交互式网络设计图。相信每个网管都会使用。用户可以自己定义路由器,交换机,然后将虚拟机与交换机进行互联,将交换机连入路由器。用户可以自己规划每个子网的IP地址,可以绑定公网地址。为什么说它神奇呢?是因为虚拟网络功能之前只有AWS、WindowsAzure等少数厂商可以做到,而青云不仅做到了,还做了一个交互式界面,不得不赞叹下

具体到实现机制,AWS和WindowsAzure估计都是利用分布式路由表来实现的,而青云是采用SDN理念下的Openflow实现的。这两种实现机制的区别,是前者是静态路由,后者是动态路由。二者各有优劣,不过SDN最近特别火,又因为其开放性获得了相当多的关注

其他方面的各种小创新还有很多,虽然算不上神奇,但也可以说是让人眼前一亮。

在基本功能上,青云支持windows/ubuntu/centos/federa/debian OS,最大支持8核32G内存存储部分只提供块存储,不过一个虚拟机可以挂多个盘,每个盘最大500G网络部分除了虚拟网络和VPN,还支持虚拟机同时加入多个自定义网络,可以自己手动分配IP。VIP支持流量控制支持备案监控支持从一分钟到一年的数据提供API接口与命令行接口

回过头来,我们可以分析下青云的优劣势。

青云的优势是,使用简单,管理效率高,易用性强,这对于个人开发者十分具有吸引力。其弱点是,运营时间短,难以快速获得大中型客户的信任。个人认为青云可以定位为国内的Linode,靠低价和易用吸引低端用户。从长远看,如果青云能够一直保持这种技术上的领先优势,是很有可能做大做强的。

功能篇总结

经过比较,不难发现目前国内的公有云厂商分成两个路线,分别是IaaS和PaaS。IaaS以AWS为标杆,PaaS以GAE为标杆。新浪、百度目前以PaaS为主,腾讯、阿里、青云目前以IaaS为主。从长线来看,除了青云之外,其他所有厂商都会走向IaaS+PaaS的混合模式

下面,就对IaaS和PaaS领域内的公有云进行横向对比。同时,也将AWS、GAE和WindowsAzure加入对比。

AWS、GAE和WindowsAzure中在短期内只有Windows Azure会进入国内。因为IBM也宣布了落地国内的计划,有人可能会问IBM的公有云是什么样,其实IBM的公有云有好几套方案,一个是现有IBM Smarter Cloud的公有云方案,由TSAM和Websphere Pure application这种厚重的企业软件构成,一个是上一篇介绍过的HSLT,还有一个是IBM近期收购的SoftLayer的方案,最终在国内落地哪个还不得而知,这里暂不做比较

在PaaS部分,可以比较的厂商包括新浪SAE,百度BAE以及国外三巨头

很明显,国外三巨头领先优势明显,而且彼此之间难分伯仲。从国内来看,新浪和百度领先阿里较多,尽管新浪推出SAE较久,但BAE迅速赶上,功能上反而比新浪更多

在IaaS部分,可以比较的厂商包括腾讯,阿里,青云以及国外三巨头

同样的,国内厂商均落后于国际厂商。

Google目前在IaaS刚起步,明显落后于Azure和AWS。

Azure和AWS基本上同步,AWS比Azure强在提供更多的虚拟机规格和OS种类。

在国内,阿里显然比腾讯要强很多

通过总结可以看出,在虚拟机部分,国内的服务提供商目前提供的服务普遍缺乏配套的虚拟网络或者VPC功能,这使得虚拟机服务跟VPS服务区别不大

综上所述

Windows Azure和AWS是云计算领域最强的两个厂商,功能完善,覆盖广泛。

在国内,IaaS领域是阿里云目前领先,PaaS领域目前百度和新浪领先。

随着Windows Azure商用日期的临近,这种局面很快会被改写

另外,各个云服务各有各自的优势,短期之内估计很难出现AWS那种一家独霸市场的局面。

各家的优势领域总结

阿里云与新浪云:积累了许多早期用户,也积累了相应的运营经验

百度云:吸引“流量”型网站开发者

腾讯云:吸引腾讯系周边产品的开发者

青云:吸引独立开发者和部分小型开发商

Windows Azure:是企业用户和.NET阵营用户的首选。由于其强大的功能,相信也会吸引很多互联网开发者

最后,从机房分布来看,大部分大型的云服务提供商都把机房放在经济发达的城市,比如新浪在北京,阿里在杭州青岛,WindowsAzure在北京上海。这和国外的云服务提供商的分布有很大差异,同时,这也给了国内其他云服务提供商很多生存空间

国外云平台

先说明一点,由于国内公有云起步较晚,基本上所有的公有云都是模仿或者克隆国外现有的云平台,因此,这里不得不首先说明下国外几个主流的有代表性的云平台:

AWS

这个不用多讲,AWS是公有云第一品牌,也是业界标杆,从起AWS就开始运营,可以说正是AWS造就了云计算当今的成果。AWS以IaaS起步,不过现今已经兼具IaaS和PaaS能力

Windows Azure

这个是微软的公有云,本人的博客有非常多的描述。

Windows Azure从开始运营,最初以PaaS为主,如今也兼具IaaS和PaaS能力

Google Cloud

起初Google主打PaaS服务App Engine,知道今年才推出IaaS服务

Linode

其特色是价格便宜,使用简便。

Linode是Linux node的缩写,不支持Windows。

Linode的定位是VPS,其网络能力比较弱,没法支持虚拟网络。

其价格差不多只有AWS和Windows Azure的一半。出于这些因素,Linode成为大量独立开发者的首选

二、测试

在简单了解各家云计算的能力之后,紧接着大家关注的问题就是性能、价格、稳定性等问题。本篇先从性能入手

本篇准备测试阿里云,Windows Azure中国站,并以AWS作为比较。测试对象以虚拟机为主,测试工具为两个:

Unixbench

开源的Linux性能测试工具,可以综合测试虚拟机的CPU、内存、文件、进程、脚本、系统调用、管道等多个维度,并且会给出一个总分。

该工具介绍:

/kdlucas/byte-unixbench (推荐)

/p/byte-unixbench/ (舍弃)

Orion

Oracle发布的一个免费IO测试工具,该工具可以测定磁盘的IOPS、吞吐量、延迟。

尽管也有一些其他IO测试工具,比如dd、bonnie++、iozone,但是只有orion可以同时测定IOPS和吞吐量,这也是我选择该工具的原因。

该工具介绍在/technetwork/cn/topics/index-088165-zhs.html

OS性能测试

首先来看Unixbench,由于各家的虚拟机规格不同,选择如下的虚拟机规格进行对比

尽管AWS的中规格只有1个核,但是根据AWS的配置,其等效的计算能力(ECU)是小规格的2倍,所以它跟Azure的M型是对等的。大规格同理

百度云和新浪云的虚拟机还未开放,暂不考虑(注:本文写于,百度云和新浪云等的虚拟主机在前后已发布)

首先说明下测试过程。公平起见,本测试未做任何性能调优和配置变更,完全采用各家提供的缺省OS镜像。虚拟机也都没有配置SWAP分区

Unixbench 安装与配置

首先用root登录目标虚拟机

1. 下载安装包(建议下载最新版)

wget /kdlucas/byte-unixbench/archive/master.zip (推荐)

wget http://byte-/files/UnixBench5.1.3.tgz (舍弃)

2. 解压缩

tar zxvf UnixBench5.1.3.tgz

3. 进入UnixBench目录

4. 进行编译

make clean

make

yum -y install gcc

./Run

5. 运行./Run即可开始测试,等待十几分钟即可

1) 运行输出的结果:

2)运行后的目录结构

3) 查看 results/ 目录下的html结果

/unixbench/

如果运行时报如下错误

Can't locate Time/HiRes.pm

可以执行下

yum install perl-Time-HiRes

安装缺少的包

在Windows Azure下,CentOS缺省没有安装gcc,可以在make之前运行如下命令安装gcc

yum --disableexcludes=main install gcc

在阿里云和AWS下,Unixbench需要安装一个perl扩展包,可在运行./Run前运行

yum install perl-Time-HiRes

Unixbench测试结果

虚拟机的性能,主要取决于两个因素:物理机性能,物理机上运行的虚拟机个数

了解虚拟化的人都会知道物理核和虚拟机的逻辑CPU(vCPU)并不是一一对应的。一个物理核可以支持多个vCPU,甚至一个超线程支持多个vCPU。这样一个2个4核支持超线程的处理器,首先在虚拟化层会变成16个核,进而可以支持最少16个vCPU。显然,vCPU对应的物理核配额越多,其性能就越好,Unixbench分数就越高

先看一下总分

1. AWS,这个分数不出意料的低。

Azure是AWS的3-4倍,而阿里云也有AWS的2-3倍。这个结果跟一个国外的第三方做的测试结果是类似的,

详细情况可参考:/shaunfang/article/details/9770527 (英文评测网址)

为啥大名鼎鼎的AWS性能如此之差?这跟AWS的历史有关。

AWS早在就开始做云计算,当时就定下了小、中、大等虚拟机规格。大家都知道硬件能力每年都在增长,这样当AWS增加新的服务器时,其处理能力就比原有的强。如果新的服务器也支持同样的用户数,那么用户拿到的虚拟机就会比原有的强。这会造成用户在不同时间段申请的同规格虚拟机性能不同的情况。于是AWS提出一个ECU概念,即逻辑运算能力,用户申请的同规格虚拟机永远拥有类似的处理能力,并且用ECU来代表,比如1ECU就代表一个Sandy Bridge级Xeon的处理能力。这样的话,的一台服务器可能会虚拟出10台小规格的虚拟机,而的一台服务器就可以虚拟出20台虚拟机。阿里云和Windows Azure都比AWS晚,它们使用的处理器较新,起步的虚拟机规格就比AWS高好几倍了。目前,Azure所提供的一个逻辑核基本上对应一个服务器的物理核,而AWS显然是4、5个虚拟机共享一个物理核。另一方面,Azure的定价跟AWS一模一样,花一样的钱就可以获得比AWS强4倍的计算能力

AWS采用的是Intel Xeon E5430 CPU,主频2.66G,启用了超线程

2. 阿里云

尽管测试采用的阿里云主机配置不如Azure(主要是内存小一些),但是其最终性能却接近Azure,这说明阿里云采用的硬件比较新,另外,没有用一台物理机去支持大量虚拟机

从结果看,阿里云采用的是Intel Xeon E5-2420 CPU,主频1.9G,启用了超线程

3. Windows Azure分数最高

从结果看,使用的是AMD 4171HE CPU,没有超线程

结论:Windows Azure性能最好,是AWS的3-4倍,比阿里云高10-20%

IO测试

IO测试主要测试磁盘性能。目前,各家提供的虚拟机基本上有三种磁盘:

1. OS盘

2. 本地临时盘

3. 数据盘

其中,OS盘和数据盘都应该是持久化的,如果物理机故障或者虚拟机重启,上面的数据应该继续保留。OS盘和数据盘的区别,是数据盘建议用来存储应用和用户数据,而OS盘是缺省提供的,不建议放用户数据。数据盘一般可以虚拟机解绑,然后加载给其他虚拟机。本地临时盘是存储在物理机本地磁盘上,没有做持久化,很容易损坏或丢失,但其成本低,性能高,一般用来做缓存。

AWS和Azure都同时支持3种盘,阿里云支持OS盘和数据盘。AWS还有一种叫IOPS盘,本次没有比较

由于Orion测试需要清空数据,本测试只测数据盘和本地临时盘

虚拟机准备

每个测试都在一台小规格的虚拟机上完成,OS为CentOS 6.3 x64. 数据盘大小为10G

Orion安装与配置

Orion的下载需要去Oracle网站。

1. 进入Oracle ORION 下载(ORION 11.1 版)

2. 选择x86_64版本下载,可能接受协议并输入Oracle ID账户密码

wget /otn/utilities_drivers/orion/orion_linux_x86-64.gz

3. 解压缩安装包

gzip -d orion_linux_x86-64.gz

4. 解压后得到一个文件,赋予执行权限

chmod +x orion_linux_x86-64

5. 创建 orion.lun文件,在里面写入测试的目标盘,比如/dev/vda1

#echo /dev/vda1 > orion.lun

需要注意:orion会直接在磁盘级进行读写,会损坏上面的文件系统,所以一定要用空磁盘进行测试

6.执行读测试,该测试会进行4K大小的随机读和1M大小连续读

./orion_linux_x86-64 -run advanced -size_small 4 -verbose

运行输出界面如下:

7.执行写测试,该测试会进行4K大小的随机写和1M大小连续写

./orion_linux_x86-64 -run advanced -size_small 4 -write 100 -verbose

运行输出界面如下:

这个测试会进行几组8K大小的随机读写和1M大小的连续读写测试。

前者用来测定IOPS能力,后者测定吞吐量

测试完成后,会发现生成并不是图形化的网页,而是许多xxx.csv文件,需要用 Excel 或 Number 转化打开

1)xxx.csv 文件列表

2)xxx.csv 文件内容示例

3)xxx.csv 文件转换成 Numbers 图形化

Orion测试结果IOPS,单位:操作/s,数字越大越好

IOPS指标对于数据库类型的应用来说十分关键。

图中横轴代表的是采用Orion测试时并发线程数,或者叫IO队列深度。Orion测试IO性能的时候,会开启多个线程,每个线程循环进行IO操作。这样,当并发线程数多的时候,系统的IO请求会排队,能够进一步提升IO性能。当并发线程数大到一定程度时,比如20,系统的IO性能会饱和。在本次测试中,我们使用Orion缺省的测试方法,即并发线程数在1-5之间变化

从数据盘的结果来看,Azure最好,并发线程数为5时,读写IO都可以达到800阿里云其次,读接近800,写有400多AWS最不稳定。AWS官方的说法是提供100左右的IOPS,如果其他用户较闲,其IOPS也可以达到几百上千。从结果来看,AWS的IO性能在读写方面很不均匀,写很快而读很慢。结合网络上的资料来看,AWS的IO性能随时间、机型变化很大。显然,由于IO性能不稳定,AWS的自带磁盘是无法满足IO密集型应用需求的,所以AWS专门推出了一个IOPS存储来保证IOPS,而这种存储价格较高

作为对比,普通一块7200转的服务器硬盘(SATA盘)的IOPS一般为100左右,而存储专用的15000转的光纤盘IOPS可以达到200。因此,Azure的数据盘要比单块服务器硬盘快的多,基本上达到了一个小规模盘阵的处理能力

另外,本地临时盘的性能,要比持久化磁盘的性能强很多。临时盘使用了SSD来提升IO性能

吞吐量,单位MB/s,数字越大越好

可以看出Windows Azure性能最好,AWS和阿里云类似。由于需要做持久化,所有的数据盘流量都会经过网络,而公有云一般不会用光纤网络这种存储专用通道,这制约了数据盘的吞吐量,几十兆/s的性能基本和普通服务器硬盘的性能类似。作为对比,本地临时盘无需网络数据拷贝,性能超高

延迟,单位ms,数字越小越好

在数据盘部分,Azure的读写延迟都在10ms以内。阿里云的读延迟偏高。而AWS的读延迟更是高的夸张,而写延迟又非常低

临时盘性能大大超越数据盘,小于1ms的延迟一定是使用了缓存或者SSD技术

上面的测试都是在某一时间点的测试。我们知道虚拟机是运行在共享的硬件上,单一时刻的性能并不能体现虚拟机的综合性能和性能的稳定性。因此,我们还需要考察IO性能随时间变化的情况。

下面的测试,是连续24小时测试所有的虚拟机得出的性能结果

IOPS,数值越大越好,横轴是时间

结果显示:

1. AWS的性能确实十分不稳定,写性能最大和最小差5倍

2. 阿里云的性能相对稳定些,不过每天有一个时间性能会突然变差,这就是每天的晚上12点左右,阿里对虚拟机进行统一备份

3. Azure的性能最稳定,而且读写性能均衡

吞吐量,单位MB/s,数值越大越好,横轴是时间

结果显示:

1. Azure的性能最好,且稳定,24小时内都在60MB-110MB之间

2. AWS较不稳定

3. 阿里云每天会有一个性能低谷(备份时间)

延迟,单位ms,数值越小越好,横轴是时间

结果显示:

1. Azure最稳定,读写均衡,24小时内延迟都在5ms左右

2. AWS最不稳定

3. 阿里云每天会有一个突发性能下降(备份时间)

测试总结

本文比较了AWS,阿里云和Azure三个公有云平台的OS性能和磁盘IO性能,数据结果显示:

1)OS性能,同样规格的虚拟机Azure性能最好,阿里云次之,AWS性能仅有Azure和阿里云的几分之一

2)IO性能,对于普通数据磁盘,Azure的性能最好,最稳定,阿里云次之。

AWS的普通磁盘性能非常不稳定,仅适合于顺序访问(追求吞吐量),

而对于随机访问,必须使用价格更高的IOPS型磁盘。

另外,要使用IOPS磁盘,必须使用专用型号的虚拟机(价格也高)

选购结论

本文都是米扑科技调研对比的成果,目的是选购性价比高的云服务器:

1)国内云服务器,选购腾讯云、阿里云、金山云(大米云折扣非常大)

2)国外云服务器,选购AWS,其国外的价格比国内阿里云、腾讯云在国外提供的云服务器价格都低很多

3) 全球云服务器价格对比,请见米扑博客:全球云服务商对比:阿里云,太贵了

参考推荐

国内公有云对比 - 功能篇(CSDN)

AWS与阿里云在国内使用的对比评测

全球云服务商对比:阿里云,太贵了

阿里云网络系列之经典网络和专有网络

AWS、Google、Apple云端宕机背后的故事

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。