终极云速度测试:亚马逊与谷歌与Windows Azure的
一组不同的真实世界的Java基准测试显示,谷歌是最快的,Azure是最慢的,而亚马逊是最贵
如果漫画家是对的,天堂就在云端,每个人都穿着白袍,每台机器都像闪电一样快,你做的每件事都很完美,每一个动作都有天使的琴声相伴。除了长袍和音乐,目前企业云的销售宣传并没有太大的不同。云提供商有无数台机器,它们正等着完美地运行您的代码。
推销是诱人的,因为云计算提供了许多优势。有没有效用账单要付,无机房的工作人员谁不想休息一个晚上,和摊销机器在N年的成本没有疯狂的税务问题。你给他们你的信用卡,你会得到一台机器上的根,往往在几分钟内。
[从亚马逊到Windows Azure,在InfoWorld考试中心的综述中可以看到精英公共云的对比。|标杆亚马逊:云性能的古怪的世界|留在与InfoWorld的云之上“云计算深入研究“特别报告云计算的报告简讯。]
为了测试提供给任何人寻找一个服务器的选项,我租一些机器上亚马逊EC2,谷歌计算引擎,微软的Windows Azure并把他们出去兜兜风。好消息是,许多承诺已经履行合同。如果您点击右边按钮并填写正确的Web表单,你可以有根一台机器上几分钟,有时甚至更快。所有这些使死简单的获得基本的商品:一个Linux发行版上运行你所需要的。
乍一看,这些选项似乎接近相同。您可以从许多相同的分布,选择,并从广泛的机器配置选项。但是,如果你开始闲逛,你会发现差异 - 包括在性能和成本的差异。该机器可能看起来像商品,但他们没有。这成为越来越明显,一旦机器开始通过我的基准搅动。
云快云慢我测试了小型,中型和大型机实例在Amazon EC2上,谷歌计算引擎,以及微软的Windows Azure使用开源DACAPO基准,14个常见的Java程序的集合捆绑成一个易于启动JAR。这是一个多样化的现实世界的应用,将在各种不同的方式锻炼的机器。有些测试会强调CPU,别人会强调RAM,还有人将强调两者。有些测试将采取多线程的优势。没有机器配置将是非常适合所有的人。
有些集合中的基准将是服务器的用户非常熟悉。Tomcat的测试,例如,启动了流行的Web服务器,并要求其组装某些网页。该Luindex和Lusearch测试将会把Lucene的,共同的索引和搜索工具,通过它的步伐。另一个测试,AVRORA,将模拟一些微控制器。虽然这个任务可能只对芯片设计是有用的,但它仍然测试机的原始CPU处理能力。
我跑在每个云三种不同的Linux机器配置了14次DACAPO测试,使用默认的JVM。这些实例并不完美“苹果对苹果”的比赛,但他们在尺寸和价格方面大致相当。每小时的配置和成本在表中低于进行细分。
,
我收集了两组数字的每台机器。第一套节目及时报告实例的量占运行从完全停止的基准。它发射了JVM,加载代码,并开始工作。这是不是一个坏的模拟,因为许多服务器启动时从脚本命令行Java代码。
为了添加另一个维度,第二个集合使用“收敛”选项报告时间。这将反复运行基准测试,直到出现一致的结果。这种情况有时会在几次运行后发生,但在少数情况下,在20次迭代后结果不能收敛。这种选择通常会大大加快速度,但有时也只会略微加快速度。
结果(见图表和表格)看起来像数字来一个人头脑麻木海,但也有少数模式脱颖而出:
- 谷歌是最快的。三个谷歌实例总共在575秒内完成了基准测试,相比之下,Amazon和Windows Azure分别用了719秒和834秒。谷歌机器在14个测试中有13个测试的时间是最快的。Windows Azure机器只有在一个基准测试中运行的时间是最快的。亚马逊从来都不是最快的。
- 谷歌也是最便宜的,不过Windows Azure紧随其后。在这三台机器上执行DaCapo套件在谷歌上花费3.78美分,在Windows Azure上花费3.8美分,在Amazon上花费5美分。在14个测试中,谷歌机器是最便宜的选择。在五个测试中,Windows Azure实例是最便宜的。只有在其中一项测试中,亚马逊的电脑是最便宜的。
- 对于守财奴最好的选择是Windows Azure中的小VM(一个CPU,每小时6美分),即完成了基准在0.67美分成本。但是,这也是最慢的一个选项,以404秒完成套件。下一个最便宜的选择,谷歌的N1-highcpu-2实例(两个CPU,每小时13.1美分),以0.70美分的成本完成了一半的时间(195秒)的基准。
- 如果您更关心速度比金钱,谷歌的N1-STANDARD-8机(八个CPU,每小时82.9美分),是最好的选择。原来在最快的时间在14个基准11,完成整个DACAPO套件101秒的2.32美分成本。最接近的竞争对手,亚马逊的m3.2xlarge实例(八个CPU,每小时$ 0.90),完成了118秒套房的2.96美分成本。
- 亚马逊很少讨价还价。亚马逊的m1.medium(一个CPU,每小时10.4美分),同时是最慢的,最昂贵的一个CPU实例。亚马逊的m3.2xlarge(八个CPU,每小时90美分),是整体的第二快的情况下,也是最昂贵的。然而,亚马逊的c3.large(两个CPU,每小时15美分),是真正具有竞争力 - 几乎一样快的整体谷歌的双CPU的实例,而且速度比Windows Azure的两款CPU的机器便宜。
我从“站立开始”测试中得出的这些一般性观察结果,也得到了“聚合”运行结果的证实。但是仔细观察单个数字会让你对一致性感到疑惑。
其中一些原因可能是云中隐藏的随机性。虽然这些公司让你看起来像是在租用一个真正的机器,它被放在某个秘密的、未公开的地堡的一个盒子里,但事实上,你可能只是被分配到一个盒子里的一小部分。您正在共享机器,这意味着其他用户可能影响您,也可能不会影响您。或者可能是系统管理程序的行为有所不同。这很难说。你的速度会随着时间和机器的变化而变化,这种情况通常不会发生在服务器从装配线上滚下来的时候。
因此,虽然似乎有云机之间明显的性能差异,你的结果可能会有所不同。这些模式也出现了:
- 更大,更昂贵的机器可以慢。你可以付出更多,让性能更差。开始与一,二,八CPU和成本6,12,每小时48美分,但他们是更昂贵的三个Windows Azure的机器,速度较慢,他们跑了AVRORA测试。同样的模式出现了与谷歌的一个CPU和两个CPU的机器。
- 有时更大回报。运行该AVRORA作业一样的Windows Azure的机器通过Eclipse基准慢加速。在第一次运行时,八个CPU的机器超过两倍的速度在一个CPU的机器。
- 比较是很麻烦的。结果表有一些洞产生时,一个特定的测试失败,其中一些很容易解释。Windows Azure机器没有适合Batik测试的编解码器。它没有与默认的Java版本一起安装。我可能会用一些工作来修复它,但是来自亚马逊和谷歌的机器不需要它。(注意:由于Azure在Batik测试上踌躇不前,上面引用的比较时间和成本忽略了Amazon和谷歌的Batik测试结果。)
- 其他的失败似乎很奇怪。Tradesoap例程偶尔会生成一个异常。这可能是由操作系统层深层的网络故障造成的。也可能是别的什么。相同的测试可以在不同的环境下成功运行。
- 常加入更多的CPU是不值得的成本。虽然Windows Azure的八个CPU的机器往往大大低于其单CPU的机器速度更快,这是很少能八倍速度 - 鉴于争气它的成本八倍之多。这是真实的,即使对那些能够认识到多个CPU和建立多线程测试。在大多数测试的8个CPU的机器是只快两到四倍。在一个测试中脱颖而出是Sunflow光线追踪测试,这是能够使用所有给它的计算能力。
- 该CPU的数字并不总是讲故事。虽然公司当你得到八个CPU平时一倍的价格,当你得到一台机器有两个CPU和乘以八,你经常可以节省钱,如果你不增加RAM太。但是,如果你做什么,不要指望性能还是双。在这些测试中的谷歌双CPU的机器是所谓的“highcpu”机器比标准机较少的内存。这是往往比一个CPU的机器慢。当它是速度更快,往往只有约30%的速度更快。
- 线程数也可以是误导。而在Sunflow基准在Windows Azure机的性能跟踪的线程数,同样不能说是为亚马逊和谷歌的机器。亚马逊的双CPU的情况下经常去的两倍多快的一个CPU的机器。在一次测试中,它是快了近三倍。谷歌的双CPU的机器,而另一方面,又只有20〜25%的速度在Sunflow。
- 价格表可以作为一个很好的业绩指标。谷歌的n1-highcpu-2机器比n1-standard-1机器贵30%,尽管它提供了两倍的理论CPU能力。谷歌可能使用性能基准来确定价格。
- 突发效果会扭曲行为。一些云计算的机器将加快简称“爆发”。这是排序的额外的周期躺在附近的一个免费的礼物。如果云供应商可以为您提供一个临时的加快,他们经常做。但要注意的是,礼物将出现,并以奇怪的方式消失。因此,一些结果可能会更快,因为机器爆裂。
- 该爆破行为会有所不同。亚马逊和谷歌机,Eclipse的标杆将使用基准的“收敛”选项时,超过三个因素加快。Windows Azure中的八个CPU的机器,在另一方面,甚至不会翻倍。
如果所有这些因素都让你感到困惑,你并不孤单。我只测试了每个云提供的一小部分配置,发现性能与我租用的计算能力只有部分相关。在不同的基准测试中,性能的巨大差异意味着不同的平台可以以完全不同的速度运行您的代码。在过去,我的测试证明了这一点云性能可以在每周的不同时间或天不等。
该测试矩阵可能很大,但它并不甚至接近探索各种不同的变化,不同的平台可以提供。所有的公司都提供了CPU和RAM和存储的多种组合。这些对性能微妙和不那么微妙的影响。在最好的情况,这些测试只能显露出一些,业绩变化的方式。
这意味着,如果您想以最低的价格获得最好的性能,您唯一的解决方案是创建自己的基准测试并测试平台。您需要决定哪些选项以最优的价格提供您所需的计算。
云计算成本考虑到云计算的卖点之一是易于购买,使用云计算机器的价格矩阵是非常复杂的。你不是在买机器、房地产、空调等等。你只是按小时租用一台机器。但是,即使你看了价目表,你也不能简单地选择最便宜的机器,然后对你的决定感到放心。
为账房棘手的问题是,在基准观察到的性能很少与价格上涨。如果你在获得你的美元最计算周期的意图,你需要自己做数学题。
最简单的选择是Windows Azure,它销售的机器尺寸从超小到超大不等。CPU和RAM的总量通常是同步增加的,在大小图上每增加一步,大约增加一倍。微软还提供了一些装有超大内存的机器。最小的有768MB内存的机器每小时收费2美分,最大的有56GB内存的机器每小时收费1.60美元。的Windows Azure的定价计算器使得它可以直接。