终极云速度测试:亚马逊,谷歌,Windows Azure

一组不同的现实世界Java基准测试表明,Google最快,Azure最快,Amazon最昂贵

如果漫画家是对的,那么天堂就坐落在乌云密布的天空中,每个人都穿着白色的长袍,每台机器都快如闪电,您所做的一切都运转良好,并且每一个动作都伴随着天使演奏七弦琴。除了长袍和音乐外,目前企业云的销售间距没有太大差异。云提供商有无数台机器,他们只是在等待完美运行您的代码。

由于云提供了许多优势,因此销售的诱惑力诱人。没有需要支付的水电费,没有想要休假的服务器机房的工作人员,也没有疯狂的税收问题可以分摊N年内的机器成本。您给他们信用卡,然后在几分钟之内扎根在一台计算机上。

[从亚马逊到Windows Azure, 在InfoWorld测试中心的评论中了解精英8公有云的比较。 | 对亚马逊进行基准测试:云性能的古怪世界 |借助InfoWorld的“云计算深入研究”特别报告和 云计算报告通讯。 ]

为了测试可供寻找服务器的任何人使用的选项,我在 亚马逊EC2, 谷歌 Compute EngineMicrosoft Windows Azure 并带他们出去兜风。好消息是许多诺言已经兑现。如果单击正确的按钮并填写正确的Web表单,则几分钟后就可以在计算机上扎根,有时甚至更快。所有这些使获得基本产品变得非常简单:运行所需功能的Linux发行版。

乍一看,这些选项似乎几乎是相同的。您可以从许多相同的发行版以及多种机器配置选项中进行选择。但是,如果您四处寻找,就会发现差异-包括性能和成本上的差异。这些机器看似商品,但不是。一旦机器开始通过我的基准测试,这一点就变得越来越明显。

快云,慢云我使用开源在Amazon EC2,Google Compute Engine和Microsoft Windows Azure上测试了小型,中型和大型计算机实例 DaCapo基准,将14个常见Java程序的集合捆绑到一个易于启动的JAR中。它是一组各种各样的实际应用程序,它们将以各种不同的方式对机器进行测试。其中一些测试将对CPU施加压力,另一些测试将对RAM施加压力,而另一些测试将对这两者施加压力。一些测试将利用多个线程。没有一种机器配置适合所有这些机器。

服务器用户将非常熟悉该系列中的一些基准测试。例如,Tomcat测试启动了流行的Web服务器,并要求它组装一些Web页面。 Luindex和Lusearch测试将使常用的索引和搜索工具Lucene步入正轨。另一个测试Avrora将模拟一些微控制器。尽管此任务仅对芯片设计人员有用,但它仍测试计算机的原始CPU容量。

我使用默认的JVM在每个云上的三种不同Linux机器配置上运行了14个DaCapo测试。这些实例并不是完美的“苹果对苹果”匹配,但就大小和价格而言,它们大致可比。下表中列出了配置和每小时成本。

我为每台机器收集了两组数字。第一组显示实例从完全停止运行基准测试所花费的时间。它启动了JVM,加载了代码,然后开始工作。这不是一个不好的模拟,因为许多服务器从脚本中的命令行启动Java代码。

要添加另一个维度,第二组使用“会聚”选项报告时间。这将反复运行基准测试,直到出现一致的结果。有时仅需运行几次便会发生这种情况,但在某些情况下,经过20次迭代后结果无法收敛。此选项通常会大大缩短速度,但有时只会产生稍快的时间。

结果(请参见下面的图表)对于任何人来说似乎都是令人麻木的数字之海,但其中有一些突出的模式:

  • 谷歌是整体上最快的。三个Google实例总共完成了575秒的基准测试,而Amazon为719秒,Windows Azure为834秒。在14项测试中的13项中,Google机器的运行时间最快。 Windows Azure计算机仅是基准测试中最快的时间。亚马逊从来不是最快的。
  • 谷歌也是整体上最便宜的,尽管Windows Azure紧随其后。在这三台机器上执行DaCapo套件在Google上的成本为3.78美分,在Windows Azure上为3.8美分,在亚马逊上为5美分。在14项测试中的八项中,谷歌机器是最便宜的选择。 Windows Azure实例在五项测试中最便宜。在其中一项测试中,亚马逊机器是最便宜的。
  • 失败者的最佳选择是Windows Azure的Small VM(一个CPU,每小时6美分),它以0.67美分的成本完成了基准测试。但是,这也是最慢的选项之一,需要404秒才能完成套件。第二个最便宜的选择是Google的n1-highcpu-2实例(两个CPU,每小时13.1美分),在一半的时间(193秒)内完成了基准测试,成本为0.70美分。
  • 如果您更关心速度而不是金钱,那么Google的n1-standard-8机器(八个CPU,每小时82.9美分)是最好的选择。在14个基准测试中,有11个是最快的时间,以2.32美分的成本在101秒内完成了整个DaCapo套件。最接近的竞争对手是亚马逊的m3.2xlarge实例(八个CPU,每小时$ 0.90),该套件在118秒内完成安装,成本为2.96美分。
  • 亚马逊很少讨价还价。亚马逊的m1.medium(一个CPU,每小时10.4美分)是一个CPU实例中最慢和最昂贵的。亚马逊的m3.2xlarge(八个CPU,每小时90美分)是整体上第二快的实例,但也是最昂贵的实例。但是,亚马逊的c3.large(两个CPU,每小时15美分)确实具有竞争力-几乎与Google的两个CPU实例一样快,并且比Windows Azure的两个CPU机器更快,更便宜。

我从“常规”测试中得出的这些一般性观点也被“融合”运行的结果所证实。但是仔细查看各个数字会使您想知道一致性。

其中一些可能是由于云中隐藏的随机性。两家公司似乎都在租用一台真正的机器,它装在一个盒子里,在一个秘密的,未公开的地堡中,但现实情况是,您可能被分配了一个很小的盒子。您正在共享计算机,这意味着其他用户可能会也可能不会影响您。也许是管理程序的行为有所不同。很难知道。您的速度可能会在每分钟和每分钟的机器之间变化,这在服务器盒下线时通常不会发生。

因此,尽管云机器之间似乎存在明显的性能差异,但您的结果可能会有所不同。这些模式也出现了:

  • 更大,更昂贵的机器可能会变慢。您可以支付更多费用,并获得更差的效果。三台Windows Azure机器以1、2和8个CPU开始,每小时的成本分别为6、12和48美分,但是它们越贵,运行Avrora测试的速度就越慢。 谷歌的一台CPU和两台CPU机器出现了相同的模式。
  • 有时更大的回报。在Eclipse基准测试中,运行Avrora作业的相同Windows Azure机器速度较慢。在第一次运行时,八CPU的计算机的速度是单CPU的计算机的两倍以上。
  • 比较可能很麻烦。结果表中有一些在特定测试失败时产生的漏洞,其中一些很容易解释。 Windows Azure计算机没有用于蜡染测试的正确编解码器。它没有随Java的默认版本一起安装。我可能可以通过一些工作对其进行修复,但是来自Amazon和Google的计算机不需要它。 (注意:由于Azure在蜡染测试中表现不佳,因此上述比较时间和成本忽略了亚马逊和Google的蜡染结果。)
  • 其他失败似乎很奇怪。 Tradesoap例程偶尔会生成异常。这可能是由于OS层深处的某些网络故障引起的。也许那是另一回事。相同的测试将在不同的情况下成功运行。
  • 添加更多的CPU通常并不值得。虽然Windows Azure的八CPU机器通常比单CPU机器快得多,但很少快八倍-令人失望的是它的成本是八倍。在能够识别多个CPU并设置多个线程的测试中,甚至是这样。在大多数测试中,使用八台CPU的计算机的速度仅快两到四倍。最引人注目的一项测试是Sunflow射线追踪测试,该测试能够使用赋予它的所有计算能力。
  • CPU编号并不总是能说明问题。当购买一台带有两个CPU的机器时,这些公司的价格通常会翻倍,而当买到八个CPU时,这些公司的价格会乘以八,而如果您不增加RAM的话,通常也可以省钱。但是,如果您这样做了,不要指望性能还会翻倍。这些测试中的Google两CPU机器是所谓的“ highcpu”机器,其RAM比标准机器少。它通常比单CPU机器慢。当速度更快时,通常只快30%。
  • 线程数也会产生误导。尽管Sunflow基准测试中Windows Azure计算机的性能跟踪线程数,但对于Amazon和Google计算机却不能这么说。亚马逊的双CPU实例的运行速度通常是单CPU机器的两倍以上。在一项测试中,速度快了将近三倍。另一方面,Google的双CPU计算机在Sunflow上的运行速度仅提高了20%到25%。
  • 定价表可以很好地指示绩效。 谷歌的n1-highcpu-2机器比n1-standard-1机器贵约30%,尽管它提供的理论CPU能力是其两倍。 谷歌可能使用性能基准来确定价格。
  • 爆发效应会扭曲行为。一些云机器将加快短暂的“爆发”。这是多余的循环的免费礼物。如果云提供商可以为您提供暂时性的提速,他们通常会这样做。但是请注意,礼物会以奇怪的方式出现和消失。因此,这些结果中的某些结果可能会更快,因为计算机已爆裂。
  • 爆裂行为会有所不同。在Amazon和Google机器上,使用基准测试的“收敛”选项时,Eclipse基准测试的速度将提高三倍以上。另一方面,Windows Azure的八CPU计算机甚至不会增加一倍。

如果所有这些因素使您感到困惑,那么您并不孤单。我仅测试了每个云中可用配置的一小部分,发现性能仅与我租用的计算能力部分相关。不同基准上的性能差异很大,这意味着不同平台可以以根本不同的速度运行代码。过去,我的测试表明 云性能可能在一周的不同时间或一天中有所不同.

这个测试矩阵可能很大,但是它甚至无法探索不同平台可以提供的不同变体。所有公司都提供CPU,RAM和存储的多种组合。这些会对性能产生微妙或不太微妙的影响。这些测试充其量只能揭示性能变化的某些方式。

这意味着,如果您有兴趣以最低的价格获得最佳性能,则唯一的解决方案是创建自己的基准并测试平台。您需要确定哪些选项以最优惠的价格交付您需要的计算。

计算云成本鉴于云的卖点之一是易于购买,因此使用云机的价格矩阵令人惊讶地复杂。您不需要购买机器,房地产,空调等等。您只是按小时租一台机器。但是,即使您查看价目表,也不能简单地选择最便宜的机器并在决策中放心。

Bean计数器的棘手问题是,基准测试中观察到的性能很少随价格而提高。如果您打算获得最多的美元计算周期,则需要自己进行数学计算。

最简单的选择是Windows Azure,它出售的计算机的大小范围从小到大。通常,CPU功能和RAM的数量会同步增加,在尺寸表的每一步中,其数量大约都会增加一倍。 Microsoft还提供了一些装有额外内存的装载机。具有768MB RAM的最小计算机的起价为每小时2美分,具有56GB RAM的最大计算机的起步价为每小时1.60美元。的 Windows Azure定价计算器 使其简单明了。

有关:
1 2 Page 1
第1页,共2页
  
在亚马逊上购买技术产品