OCI Ampere A2 Instances Powered by AmpereOne Processors
AmpereOne® processors are designed from the ground up to deliver exceptional performance for Cloud Native applications. With an innovative architecture that delivers high performance, linear scalability, and stellar energy efficiency, AmpereOne® enables applications like Redis to run in a predictable manner, and with minimal variance under increasing loads.
Oracle Cloud offers the cost-optimized A2 VMs powered by AmpereOne® processors in multiple flexible VM shapes – 946GB total memory, up to 78 Gbps networking bandwidth, and a wide range of network-attached storage options. These VMs are suitable for scale-out Cloud Native workloads like web servers, in-memory caches, databases, containerized microservices, data-logging, media transcoding, and Big Data applications.
Redis is an open source, in-memory, key-value data store that is typically used as a distributed database or a cache. Due to its in-memory nature, Redis is very 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.
As can be seen above in Figure 1, the Oracle Cloud A2 flex VMs powered by AmpereOne® processors perform 12% better relative to AMD E5 VMs, under a p99 SLA of 1ms.
Figure 2 shows the price-performance running Redis. We measured a 70% uplift on A2 compared to E5. The instance pricing is derived from the Oracle Cloud cost estimator tool: https://www.oracle.com/cloud/costestimator.html
Redis 7.2.0 was used for the tests with Memtier_benchmark (developed by Redis Labs) as a load generator. Each test was configured to run with multiple threads, multiple clients per thread, and with pipelining enabled. The A2 and E5 systems under test (SUT) were 4 OCPU VMs. Three runs were performed to ensure run-to-run variance was low.
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.
Redis-server was compiled with GCC 10.2 for the tests, which were run on Oracle Linux 9.4. For each of the tests, a similar number of clients was used to generate requests to the Redis server.
Since it is realistic to measure throughput under a specified Service Level Agreement (SLA), a 99-percentile latency (p99) of 1 millisecond was used. This ensures 99 percent of requests have a response time of at the most 1 ms.
The test was run for 3 minutes with a 1:10 set:get ratio, which is common for in-memory caches. Since Redis is single threaded, multiple instances were used to load the VM. An appropriate number of clients and threads/client was used to load one instance of Redis, while ensuring the p.99 latency was at most 1 ms. Pipelining is a technique for improving performance by issuing multiple requests at once without waiting for a response to each individual request. This feature can dramatically reduce response times and pipelining was set to 150 requests in these tests.
The number of Redis instances was increased till one or more instances violated the p99 latency SLA. The aggregate throughput of all instances was used as the primary performance metric.
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 OCI A2 VMs powered by AmpereOne® outperform their legacy x86 E5 counterparts – by up to 12% on performance and 71% on price-performance. For cloud architects, choosing OCI A2 flex VMs can lead to better performance and considerable price-performance improvements.
For more information about the Oracle A2 virtual machines with AmpereOne® processors, please visit the Oracle Cloud website for further details.