Apache APISIX 在微软云 ARM 和 x86 服务器上的性能测试对比
背景
今年 4 月,微软宣布推出基于 Ampere® Altra® Arm 处理器的 Azure 虚拟机系列预览版。新的 VM 系列包括通用 Dpsv5 和内存优化的 Epsv5,具体信息参考下图:
![](https://static001.geekbang.org/infoq/2c/2cfd688e79852361858bf0fc6c8d8acc.png)
值得注意的是,Ampere® Altra® Arm 是一款云原生处理器,基于 Ampere® Altra® Arm 处理器的 Azure 虚拟机也因此能以高效的方式运行横向扩展的云原生应用程序。
那么实际体验和性能如何呢?接下来我们将以一个云原生的 API 网关为例,带大家一起看看基于 ARM 架构的 Azure 虚拟机的表现。这里,我们选择了 Apache APISIX 在通用型 Dpdsv5 系列虚拟机上进行安装测试。
Apache APISIX 是一个云原生、高性能、可扩展的 API 网关。基于 NGNIX + LuaJIT 和 etcd,APISIX 与传统 API 网关相比,具有动态路由和插件热加载特性,特别适合云原生架构下的 API 管理。
![](https://static001.geekbang.org/infoq/b6/b6d675d6d4c94244de6d07f871883e68.png)
前期准备
首先,我们在 Azure 上启动一个 Dpdsv5 系列的实例,操作系统选择 Ubuntu 20.04。
![](https://static001.geekbang.org/infoq/9b/9ba0948b64a325804cd4fb101b405de5.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
然后安装 Docker,方便后续使用容器化的方式来部署 Apache APISIX。
部署 Apache APISIX
Apache APISIX 使用 etcd 作为配置中心,因此需要先启动一个 etcd 实例。
启动 Apache APISIX 实例。
创建路由。
访问测试。
返回以下结果则表示安装成功:
Azure Ddsv5 vs Azure Dpdsv5
从上述操作来看,Apache APISIX 在 Azure Dpdsv5 上的安装和兼容性测试都能顺利完成。那么 Azure Dpdsv5 的实际性能到底如何呢?接下来我们将使用 Apache APISIX 分别在 Azure Dpdsv5 和 Azure Ddsv5 上做性能测试对比,看看实际表现。
Azure Ddsv5 是 Azure D 系列的另一款机型,是基于 Intel® x86 架构的, 所以上述 etcd 安装步骤略有不同:
为简单起见,本次测试 APISIX 中只启用了一个 Worker,以下性能测试数据均在单核 CPU 上运行。
场景一:单上游
该场景下将使用单个上游(不包含任何插件),主要测试 APISIX 在纯代理回源模式下的性能表现。在本地环境中进行测试:
场景 2:单个上游 + 两个插件
该场景下将使用单个上游与两个插件进行,主要测试 APISIX 在开启 limit-count
和 prometheus
两个核心性能消耗插件时的表现。
数据比较
上述两个场景中,分别从请求 QPS(每秒查询数) 和延迟时间两个层面进行了相关的测试对比。结果如下:
QPS 比较
![](https://static001.geekbang.org/infoq/f9/f9a7a22482884e883712e4af33911b84.png)
请求延迟比较
![](https://static001.geekbang.org/infoq/3c/3c7bb76eb81e63e0a60eb296bc2828da.png)
![](https://static001.geekbang.org/infoq/2b/2bcdbe36444a6d12acf8c9f2b50afe19.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
从以上数据也可以看出,在 API 网关等网络 IO 密集计算场景下,Dpdsv5 相比同系列 Ddsv5 在性能上仍然有差距。不过好消息是,在同等配置的情况下,Dpdsv5 的价格要比 Ddsv5 便宜 20% 左右。在实际机器选型时,用户可以根据自己的业务体量来灵活决策。
总结
本文主要使用 Apache APISIX 来对比 Azure Ddsv5 和 Azure Dpdsv5 的性能。从结果可以看出 Azure Dpdsv5 相比 Ddsv5,表现虽然不是那么亮眼,但是由于该系列的机型尚处于预览版,微软正在进行持续的改进和优化,我们也非常期待它的后续表现。
评论