SkyeYoung commented on code in PR #1367: URL: https://github.com/apache/apisix-website/pull/1367#discussion_r1004173022
########## blog/zh/blog/2022/08/12/arm-performance-google-aws-azure-with-apisix.md: ########## @@ -54,73 +69,69 @@ Tau T2A VM 有多种预定义的 VM 形状,每个 VM 最多 48 个 vCPU,每 ![Dpsv5 和 Epsv5 VM](https://static.apiseven.com/2022/blog/0812/3.png) -## 三大云厂商 ARM 服务器性能测试 +### Oracle Cloud Infrastructure Ampere A1 Compute + +2021 年 5 月底,甲骨文发布了首款以 Arm 为基础的运算产品:OCI Ampere A1 Compute。该产品将可以在 Oracle 云端基础设施 (Oracle Cloud Infrastructure,以下简称 OCI) 上运行,主要机型是:VM.Standard.A1.Flex(以下简称 OCI A1),其CPU 核心和内存都可以灵活配置。 + +为了支持 OCI 中的新 Ampere A1 Compute 实例, Oracle 创建了一个 [Arm 开发人员生态系统](https://blogs.oracle.com/cloud-infrastructure/oracle-makes-building-applications-on-ampere-a1-compute-instances-easy),使开发人员能够在 OCI Arm 实例上无缝转换、构建和运行应用程序。此外,Oracle 已与 Ampere Computing、Arm、GitLab、Jenkins 等公司合作,以加速 Arm 开发者生态系统。Arm 处理器已从移动设备发展为云端服务器,为开发人员提供工具和平台,以过渡、构建和运行基于 Arm 的工作负载。 + +## 云厂商 ARM 服务器性能测试 -在本文中,我们将通过测试单核心性能来反映各服务器的整体性能。这里选取网络 IO 密集型的 API 网关 Apache APISIX,分别在 AWS c7g.large、GCP t2a-standard-2 和 Azure D2ps v5(属于 Dpsv5 系列,双核 CPU)三款机型上绑定单个 CPU 核心进行压力测试,并通过 QPS 和响应延迟两个指标来分析服务器的性能。 +下面我们将通过测试单核心性能来反映各服务器的整体性能。这里选取网络 IO 密集型的 API 网关 [Apache APISIX](https://apisix.apache.org/),分别在 AWS c7g.large、GCP t2a-standard-2、Azure D2ps v5(属于 Dpsv5 系列,双核 CPU)和 OCI A1 四款机型上绑定单个 CPU 核心进行压力测试,并通过 QPS 和响应延迟两个指标来分析服务器的性能。 -[Apache APISIX](https://github.com/apache/apisix) 是一个云原生、高性能、可扩展的 API 网关。基于 NGNIX + LuaJIT 和 etcd,APISIX 与传统 API 网关相比,具有动态路由和插件热加载特性,特别适合云原生架构下的 API 管理。 +[Apache APISIX](https://github.com/apache/apisix) 是一个云原生、高性能、可扩展、开源的 API 网关。与传统 API 网关相比,Apache APISIX 基于 NGINX 与 LuaJIT 开发,具有动态路由和插件热加载等特性,非常适合云原生架构下的 API 管理。架构图如下所示: ![Apache APISIX](https://static.apiseven.com/2022/blog/0812/4.png) -接下来我们将使用 APISIX 官方开源的[性能测试脚本](https://github.com/apache/apisix/blob/master/benchmark/run.sh)进行测试。 +我们将使用 Apache APISIX 分别在 AWS c7g.large、GCP t2a-standard-2、Azure D2ps v5 (虽然名称含D2ps,但实际是属于 Dpsv5 系列的双核 CPU)和 OCI A1 四款机型上绑定单个 CPU 核心进行压力测试,并通过 QPS 和响应延迟两个指标来分析服务器的性能。 + +我们将使用 APISIX 官方开源的[性能测试脚本](apisix/run.sh at master · apache/apisix)进行测试。 ### 测试用例 -本文我们将测试 Apache APISIX 在两个典型场景下的表现,以便获取更加真实、丰富的测试数据。 +本文我们将测试 Apache APISIX 在两个典型场景下的表现,以便获取更加真实、丰富的测试数据进行对比。 - 场景一:单个上游。该场景下使用单个上游(不包含任何插件),主要测试 APISIX 在纯代理回源模式下的性能表现。 - 场景二:单上游+多插件。该场景使用单上游与多插件配合,在这里使用了两个插件。主要测试 APISIX 在开启 `limit-count` 和 `prometheus` 两个核心消耗性能插件时的性能表现。 ### 测试结果 -下图是 QPS(每秒查询数)测试结果, 数字越大代表其性能越好。 - -![QPS 结果](https://static.apiseven.com/2022/blog/0812/5.png) +下图是AWS c7g.large、GCP t2a-standard-2、Azure D2ps v5 和 OCI A1 四款机型的 QPS(每秒查询数)测试结果,QPS 数值越大代表该服务器的性能越好。 -下图是响应延迟测试结果,单位为毫秒。数字越小代表其性能越好。 +![QPS 结果](https://static.apiseven.com/2022/10/14/6348f70deefc4.png) -![响应延迟结果](https://static.apiseven.com/2022/blog/0812/6.png) +- 将性能从优至劣进行排序: -从 QPS 和响应延迟来看,在类似 Apache APISIX 这种网络 IO 密集型的 API 网关下,AWS C7g 相比 GCP T2A 有 100% 的性能提升,Azure Dpsv5 相比 GCP T2A 则有 15% 左右的性能领先。 + **场景一:AWS c7g.large > Azure D2ps v5 > OCI A1 > GCP t2a-standard-2** -## 机器性价比比较 + 在单个上游不包含任何插件的情况下, AWS c7g.large 的 QPS 达到 23000 次/秒,性能几乎是最落后的 GCP t2a-standard-2 (QPS 为 11300 次/秒)的两倍,Azure D2ps v5、OCI A1 和 GCP t2a-standard-2 这三者差距不大,OCI A1 和 GCP t2a-standard-2 性能相当,仅相差 200 次/秒。 -由于本文仅专注于测试不同云厂商 ARM 机器的性能,所以在结果呈现中我们将忽略 “CPU 核心数相同时内存不同” 这一变化,只从 CPU 核心数的角度来分析 AWS Graviton3 和 GCP T2A 的性价比。 + **场景二:AWS c7g.large > Azure D2ps v5 > GCP t2a-standard-2 > OCI A1** -:::note + 在单个上游及两个插件的场景下, AWS c7g.large 的 QPS 达 18000 次/秒,仍保持领先,但差距有所缩小,Azure D2ps v5 的性能略高于 OCI A1,仅相差 400 次/秒。 -在当前的测试场景下,性价比可以理解为:QPS/成本。 +下图是响应延迟测试结果,单位为毫秒。数值越小代表其性能越好。 -::: +![响应延迟结果](https://static.apiseven.com/2022/10/14/6348f70d506dd.png) -下表是 AWS C7g (US East Ohio) 、GCP T2A (us-central1) 和 Azure Dpsv5 (East US) 不同核心的服务器每小时价格对比: Review Comment: ```suggestion ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@apisix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org