---
title: "How Is the Azure ARM Architecture Server Perform? - API7.ai"
description: "This article uses API Gateway Apache APISIX to compare the performance of Azure Ddsv5 and Azure Dpdsv5 in network IO-intensive scenarios."
url: "https://api7.ai/blog/apache-apisix-performance-testing-in-azure"
---

[Blog](https://api7.ai/blog)

[Products](https://api7.ai/category/products)[Technology](https://api7.ai/category/technology)[Ecosystem](https://api7.ai/category/ecosystem)[Case Study](https://api7.ai/category/usercase)[Team & Community](https://api7.ai/category/community)

Search

⌘ + K

[Blog](https://api7.ai/blog)

Ecosystem

# How Is the Azure ARM Architecture Server Perform?

API7.ai

August 8, 2022

[Ecosystem](https://api7.ai/category/ecosystem)

## Background

In April, Microsoft announced a preview of its family of Azure virtual machines based on Ampere® Altra® Arm processors. The new VM series includes general-purpose Dpsv5 and memory-optimized Epsv5 VMs. For details, refer to the following figure:

![Azure VM](https://static.api7.ai/2022/10/03/633a3fc253f7c.png?imageMogr2/format/webp)

Notably, Ampere® Altra® Arm is a cloud-native processor, and Azure virtual machines based on Ampere® Altra® Arm processors can therefore run scale-out cloud-native applications in an efficient manner.

So what is the actual experience and performance? Let\\'s take a cloud-native API gateway as an example to show you the performance of an Azure virtual machine based on the Arm architecture. Here, we choose Apache APISIX for installation and testing on the general-purpose Dpdsv5 series virtual machine environment.

Apache APISIX is a cloud-native, high-performance, scalable API gateway. Based on NGNIX + LuaJIT and etcd, APISIX has the characteristics of dynamic routing and plug-in hot loading compared with traditional API gateways, which is especially suitable for API management under cloud-native architecture.

![Apache APISIX architecture](https://static.api7.ai/2022/10/03/633a3f274ca5c.png?imageMogr2/format/webp)

## Preliminary preparation

First, you need to start a Dpdsv5 series instance on Azure, and choose Ubuntu 20.04 as the operating system.

![Azure Dpdsv5](https://static.api7.ai/2022/10/03/633a3fc260172.jpg?imageMogr2/format/webp)

Then install Docker to facilitate subsequent use of containerized methods to install and deploy Apache APISIX.

```
sudo apt-get update && sudo apt-get install docker.io
```

## Deploy Apache APISIX

Apache APISIX uses etcd as the configuration center, so you need to start an etcd instance first.

```
sudo docker run -d --name etcd
    -p 2379:2379
    -e ETCD_UNSUPPORTED_ARCH=arm64
    -e ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
    -e ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379
    rancher/coreos-etcd:v3.4.16-arm64
```

Then start an instance of Apache APISIX.

```
sudo docker run --net=host -d apache/apisix:2.14.1-alpine
```

Create routes.

```
curl "http://127.0.0.1:9080/apisix/admin/routes/1"
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X PUT -d '
{
    "uri": "/anything/*",
    "upstream": {
        "type": "roundrobin",
        "nodes": {
              "httpbin.org:80": 1
        }
    }
}'
```

Access the test.

```
curl -i http://127.0.0.1:9080/anything/das
```

The installation is successful if the following results are returned:

```
HTTP/1.1 200 OK
.....
```

## Azure Ddsv5 vs Azure Dpdsv5

From the above operations, the installation and compatibility test of Apache APISIX on Azure Dpdsv5 can be successfully completed. So what is the actual performance of Azure Dpdsv5? Next, we will use Apache APISIX to do performance test comparisons on Azure Dpdsv5 and Azure Ddsv5 to see their actual performance.

Azure Ddsv5 is another model of Azure D series, which is based on Intel® x86 architecture, so the above etcd installation steps are slightly different:

```
sudo docker run -d --name etcd
    -p 2379:2379
    -e ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
    -e ALLOW_NONE_AUTHENTICATION=yes
    -e ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379
    bitnami/etcd:3.4.16
```

### Single upstream + no plugin

Use a single upstream, without any plugins. It mainly tests the performance of APISIX in pure proxy back-to-origin mode.

```
# apisix: 1 worker + 1 upstream + no plugin
# create route
curl http://127.0.0.1:9080/apisix/admin/routes/1
-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "uri": "/hello",
    "plugins": {
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980":1
        }
    }
}'
```

### Single upstream + two plugins

Using a single upstream, two plugins. It mainly tests the performance of APISIX when the two core performance-consuming plugins, limit-count and prometheus, are enabled.

```
# apisix: 1 worker + 1 upstream + 2 plugins (limit-count + prometheus)
# create route
curl http://127.0.0.1:9080/apisix/admin/routes/1
-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "uri": "/hello",
    "plugins": {
        "limit-count": {
            "count": 2000000000000,
            "time_window": 60,
            "rejected_code": 503,
            "key": "remote_addr"
        },
        "prometheus": {}
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980":1
        }
    }
}'
```

### Data comparison

In the above two scenarios, relevant tests and comparisons were carried out from the two levels of request QPS (queries per second) and delay time. The result is as follows:

1. QPS comparison

   ![QPS](https://static.api7.ai/2022/10/03/633a3fc24e025.png?imageMogr2/format/webp)

2. Latency Comparison

   ![Latency](https://static.api7.ai/2022/10/03/633a3fc20efcd.png?imageMogr2/format/webp)

\| | Single upstream + no plugin | Single upstream + two plugins | | ------------------ | --------------------------- | ----------------------------- | --------------- | ---------------- | | | **Azure Ddsv5** | **Azure Dpdsv5** | **Azure Ddsv5** | **Azure Dpdsv5** | | **QPS(request/s)** | **14900** | **13400** | **13100** | **11000** | | **Latency(ms)** | **1.07** | **1.21** | **1.21** | **1.43** |

It can also be seen from the above data that in network IO-intensive computing scenarios such as API gateways, Dpdsv5 still has a performance gap compared to the same series of Ddsv5. But another good news is that the price of Dpdsv5 is about 20% cheaper than Ddsv5 under the same configuration. In actual machine selection, users can make flexible decisions according to their business volume.

## Summary

This article mainly uses Apache APISIX to compare the performance of Azure Ddsv5 and Azure Dpdsv5. It can be seen that in network IO-intensive computing scenarios such as API gateways, Azure Dpdsv5 is not so bright compared to Ddsv5, but since this series of models is still in preview, Microsoft is making continuous improvements and optimizations. Looking forward to its sequel.

## Reference

[Now in preview: Azure Virtual Machines with Ampere Altra Arm-based processors](https://azure.microsoft.com/en-us/blog/now-in-preview-azure-virtual-machines-with-ampere-altra-armbased-processors/)

Tags:

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[Azure](https://api7.ai/tags/azure)

[Comparison to Competitors](https://api7.ai/tags/comparison-to-competitors)

Share article link

Share

Related Posts

[![WAF & API Gateway Integration: Protecting Your APIs](https://static.api7.ai/uploads/2024/01/29/xV7L0ef7_APISIX_WAF_Cover.jpeg)](https://api7.ai/blog/waf-and-api-gateway-integration)

## [WAF & API Gateway Integration: Protecting Your APIs](https://api7.ai/blog/waf-and-api-gateway-integration)

[![mTLS Everywhere: How to Configure TLS for APISIX](https://static.api7.ai/uploads/2024/12/24/DVhnbLpy_apisix-mtls.png)](https://api7.ai/blog/configure-tls-for-apisix)

## [mTLS Everywhere: How to Configure TLS for APISIX](https://api7.ai/blog/configure-tls-for-apisix)

Table of Contents

- [Background](#background)

- [Preliminary preparation](#preliminary-preparation)

- [Deploy Apache APISIX](#deploy-apache-apisix)

- [Azure Ddsv5 vs Azure Dpdsv5](#azure-ddsv5-vs-azure-dpdsv5)

  - [Single upstream + no plugin](#single-upstream--no-plugin)
  - [Single upstream + two plugins](#single-upstream--two-plugins)
  - [Data comparison](#data-comparison)

- [Summary](#summary)

- [Reference](#reference)

## Related Posts

[![How Is AWS Graviton3 Performing?](https://static.api7.ai/uploads/2023/01/12/I6dWwBSn_aws.png)](https://api7.ai/blog/installation-and-performance-testing-of-api-gateway-apache-apisix-on-aws-graviton3)

Ecosystem

June 7, 2022

#### [How Is AWS Graviton3 Performing?](https://api7.ai/blog/installation-and-performance-testing-of-api-gateway-apache-apisix-on-aws-graviton3)

Uses APISIX to compare the performance of AWS Graviton3 and Graviton2. AWS Graviton3 shows the power performance in the API gateway.

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[AWS](https://api7.ai/tags/aws)

[Comparison to Competitors](https://api7.ai/tags/comparison-to-competitors)

[![Apache APISIX's Integration With Azure Serverless](https://static.api7.ai/2022/10/03/633a4321e0d57.webp)](https://api7.ai/blog/apache-apisix-azure-functions-integration)

Ecosystem

December 1, 2021

#### [Apache APISIX's Integration With Azure Serverless](https://api7.ai/blog/apache-apisix-azure-functions-integration)

Apache APISIX provides support for serverless frameworks for popular cloud vendors (more ...

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[Azure](https://api7.ai/tags/azure)

[Plugin](https://api7.ai/tags/plugin)

[![Unlocking Tailored Solutions: Harnessing Apache APISIX and Node-Red in Harmony](https://static.api7.ai/uploads/2024/03/06/uppjizMq_APISIX-node-red-cover.png)](https://api7.ai/blog/apache-apisix-and-node-red)

Ecosystem

March 6, 2024

#### [Unlocking Tailored Solutions: Harnessing Apache APISIX and Node-Red in Harmony](https://api7.ai/blog/apache-apisix-and-node-red)

Combining APISIX and Node-Red can help visually implement a complete request-handling process without rewriting complex code or plugins.

[Node-Red](https://api7.ai/tags/node-red)

[APISIX Basics](https://api7.ai/tags/apisix-basics)
