InfoWorld 测试中心的 Peter Wayner 近日对 GCE、Azure 和 AWS 进行了一组基准测试并发布测试报告。报告初步结论为:GCE 性能最快,Azure 最慢,AWS 表现中庸但价格最贵。
Peter Wayner 采用的是开源的 DaCapo 压力测试套件,分别对小型,中型和大型机实例在 Amazon EC2、GCE、以及微软 Windows Azure 进行测试。DaCapo 是由 14 个常见 Java 程序捆绑而成的集合,它尽可能地模拟生产环境,对机器进行一系列的测试。子测试会偏重 CPU、RAM 等不同方面,有的会进行性能组合测试,有些测试会采取多线程模式。
这组测试套件中大家可能比较熟悉的测试有:Tomcat 测试,启动 Web 服务器,编译网页;Luindex&Lusearch 测试(常见的索引和搜索工具),即部署并运行 Lucene;Avrora,将模拟一些微控制器(microcontrollers),这个测试可能只对芯片设计者有用,但该测试可以收集到真实的原始 CPU 数据。
作者分别在每个云平台三种不同的 Linux 机器上运行了 DaCapo 测试,使用默认 JVM。启动的实例配置并非完全一致,而是在规模和价格方面大致相当。下表为三家机器配置和每小时的花费。
纵观三家平台,从速度上来说,谷歌是最快的。这三家完成基准测试分别用时为:谷歌 575s,亚马逊 719s,Windows Azure 834s。谷歌的机器在 DaCapo 测试的 14 个套间中有 13 个是最快的,Windows Azure 的机器只有在一个测试案例中表现最快。
从价格上来说,谷歌也是最便宜的,Windows Azure 紧随其后。执行 DaCapo 套件在三家云平台的花费分别为谷歌 3.78cents,Windows Azure 3.8cents,Amazon 5cents。在 14 个测试案例中,其中八个谷歌的机器花费最少;Windows Azure 的实例在五个测试案例中花费最少;亚马逊机器只有在一个测试案例花费最少。如下图:
有些很有意思的结果:在微软的平台上测试时,绿色和红色结果(绿色表示花费少,耗时短;红色表示花费多,耗时长)可能会出现在同一台机器上,这意味着:便宜的机器性能很好,或昂贵的机器表现一般。谷歌的单 CPU 的机器充满了绿色,即速度快还省钱,但运行 Tradesoap 测试呈现红色,这就暴露出谷歌在处理 Tradesoap 测试中的可能存在的策略问题。
谷歌使用 GCEU(Google Compute Engine Unit)作为不同机型计算能力的度量单位,亚马逊对应的有 ECU(Elastic Compute Units);高 CU(Compute Unit)机器的性能是否能成倍提升?拿亚马逊的例子来说:m3.2xlarge 约为 26 ECUs,m3.medium 约为 3 ECUs;在大部分的压力测试中,m3.2xlarge 型号的机器仅是 m3.medium 速度的2-4 倍,虽然在某些压力测试中的表现能达到 8 倍的效果。
大家可下载详细的测试数据进行阅读。值得注意的是,Peter Wayner 并没有对存储进行测试,而写密集型或读密集型的应用性能往往受到存储性能的制约。另外,本测试结果如果采用不同的 Java 版本,也可能导致测试性能的巨大差异。
参考阅读:
Cloud review: 8 public cloud services put to the test
Benchmarking Amazon: The wacky world of cloud performance
Cloud Computing Deep Dive