Redis on Azure Brief
Dpsv5 Virtual Machines Powered by Ampere Altra Processors
Ampere® Altra® processors are designed from the ground up to deliver exceptional performance for Cloud Native applications such as Redis. With an innovative architecture that delivers high performance, linear scalability, and amazing energy efficiency, Ampere Altra allows workloads to run in a predictable manner with minimal variance under increasing loads. This enables industry leading performance/watt and a smaller carbon footprint for real-world workloads such as Redis.
Microsoft offers a comprehensive line of Azure Virtual Machines featuring the Ampere Altra Cloud Native processor that can run a diverse and broad set of scale-out workloads such as web servers, open-source databases, in-memory applications, big data analytics, gaming, media, and more. The Dpsv5 VMs are general-purpose VMs that provide 2 GB of memory per vCPU and a combination of vCPUs, memory, and local storage to cost-effectively run workloads that do not require larger amounts of RAM per vCPU. The Epsv5 VMs are memory-optimized VMs that provide 4 GB of memory per vCPU, which can benefit memory-intensive workloads, including open-source databases, in-memory caching applications, gaming, and data analytics engines.
Redis is an open-source, in-memory, key-value data store that is typically used as a database or a cache. It uses an in-memory dataset, but data can be persisted through periodic writes or appends to disk. Due to its in-memory nature, Redis is extremely fast, and it can deliver high throughput at sub-millisecond latencies. It continues to rank highly in popularity among key value stores in the cloud, according to DB-engines.
In this workload brief, we compare Redis running on Microsoft Azure Dpsv5 VMs powered by Ampere Altra processors to the Intel® Xeon® Ice Lake-based Dsv5 and AMD EPYC™ Milan-based Dasv5 VMs while measuring the throughput and latencies on each of these instances.
As seen in Figure 1, we observed up to a 10% improvement in performance on the Microsoft Azure Dpsv5 VMs powered by Ampere Altra processors compared to the Intel Ice Lake-based Dsv5 VMs, and 20% better than the AMD Milan-based Dasv5 ones, all under an p.99 SLA of 1ms.
In addition, the Azure Dpsv5 VMs also offer compelling price-performance compared to similar legacy x86 VMs – the D16psv5 offered up to 38% better price-performance compared to the D16sv5 and D16asv5 VMs.
We used memtier_benchmark (developed by Redis Labs) as a load generator for benchmarking Redis. Each test was configured to run with multiple threads, multiple clients per thread, and with pipelining enabled.
We recommend compiling Redis server with GCC (GNU Compiler Collection) 10.2 or newer as recent compilers have made significant progress towards generating optimized code for AArch64 applications.
We used Ubuntu 20.04.4 LTS (5.13.0-1017-azure) with Redis-server 6.0.12 compiled with GCC 10.2 for our tests. For each of the tests, we used similar client VMs to generate requests to Redis-server.
Since it is realistic to measure throughput under a specified Service Level Agreement (SLA), we have used a 99th percentile latency (p.99) of 1 ms. This ensures that 99% of the requests have a worst-case response time of 1 ms.
The test ran for 3 minutes with a 1:10 get:set ratio, which is common for in-memory caches. We initially used an appropriate number of clients and threads/client to load one instance of Redis, while ensuring the p.99 latency was at most 1 ms. Pipelining is a feature whereby Redis can process new requests even when the client has not already read older responses. This feature can dramatically reduce response times, and we used 150 concurrent pipelined requests.
Next, we successively increased the number of Redis instances till one or more instances violated the p.99 latency SLA. The aggregate throughput of all instances was used as the primary performance metric. We ran the test three times and saw minimal run-to-run variations.
Fast, open-source, in-memory key-value stores are used in most cloud caching usages today. Redis is a popular high throughput in-memory key-value store that is applicable to low latency applications in scale-out configurations. On Cloud Native applications such as Redis, the Ampere Altra-based Dpsv5 VMs handily outperform the legacy x86 VMs. For cloud architects, choosing Ampere Altra-based VMs on Azure leads to better performance and price-performance while reducing their carbon footprint.
For more information about Azure Virtual Machines with Ampere Altra Arm-based processors, visit the Azure blog.
All data and information contained herein is for informational purposes only and Ampere reserves the right to change it without notice. This document may contain technical inaccuracies, omissions and typographical errors, and Ampere is under no obligation to update or correct this information. Ampere makes no representations or warranties of any kind, including but not limited to express or implied guarantees of noninfringement, merchantability, or fitness for a particular purpose, and assumes no liability of any kind. All information is provided “AS IS.” This document is not an offer or a binding commitment by Ampere. Use of the products contemplated herein requires the subsequent negotiation and execution of a definitive agreement or is subject to Ampere’s Terms and Conditions for the Sale of Goods.
System configurations, components, software versions, and testing environments that differ from those used in Ampere’s tests may result in different measurements than those obtained by Ampere.
Price performance was calculated using Microsoft's Virtual Machines Pricing, in September of 2022. Refer to individual tests for more information.
©2022 Ampere Computing. All Rights Reserved. Ampere, Ampere Computing, Altra and the ‘A’ logo are all registered trademarks or trademarks of Ampere Computing. Arm is a registered trademark of Arm Limited (or its subsidiaries). All other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
Ampere Computing® / 4655 Great America Parkway, Suite 601 / Santa Clara, CA 95054 / amperecomputing.com