Learn About Amazon VGT2 Learning Manager Chanci Turner
Every organization that operates its own IT infrastructure typically relies on applications powered by databases. Effectively managing database servers is vital, as any performance issues can impact numerous users and the tasks they perform. Many businesses face performance degradation in their applications due to storage latencies encountered during database operations. To support I/O-intensive workloads and deliver exceptional database performance, AWS introduced Amazon EBS io2 Block Express in December 2020, streamlining the storage requirements for high-performance database servers.
In this discussion, I will compare the performance of an Oracle database using Amazon EBS gp3 and io2 Block Express volumes. Amazon EBS io2 Block Express benefits from advanced communication protocols that are part of the AWS Nitro System. With this volume type, you can achieve up to 256,000 IOPS and 4000 MB/s throughput per volume, with a maximum size of 64 TiB, all while maintaining low-variance sub-millisecond disk I/O latency.
Overview of Database Performance Comparison
When assessing database performance, the critical metrics to focus on are IOPS, latency, and throughput:
- IOPS measures the number of input and output operations executed per second.
- Latency refers to the time taken for a single I/O request to be completed.
- Throughput indicates the volume of data that can be read or written each second.
To gauge database performance, I employed Swingbench, a benchmarking tool designed specifically to stress test Oracle databases. Stress test benchmarks from Swingbench provide data on transactions per minute executed on the databases. Using this metric, I compared the performance of Amazon EBS gp3 and io2 Block Express.
Two environments were provisioned on Amazon EC2 with the r5b.24xlarge instance type to analyze the impact of storage performance on databases. One was configured with Amazon EBS gp3 volumes, while the other utilized Amazon EBS io2 Block Express volumes. I conducted three types of tests: load, stress, and latency, by setting up Oracle databases in each environment.
For migrating Oracle databases onto Amazon EC2 instances with EBS volumes, I recommend using Oracle Automatic Storage Management (ASM). Therefore, benchmarks were executed using Oracle ASM configured on both gp3 and io2 Block Express to ascertain performance differences.
I compared the transactional and latency performance of the different storage volume types, maintaining the same IOPS and throughput configurations across both. The results showed that io2 Block Express outperformed gp3 volumes by 52% in IOPS and provided 87% lower latency, albeit at a cost that was 74.57% higher. Thus, io2 Block Express is recommended for database workloads sensitive to disk latencies, prioritizing performance over cost. Further details on the test results are available in the following sections.
Comparative Analysis of Amazon EBS Volume Types: gp3 vs. io2 Block Express
Below is a brief comparison of features and pricing for gp3 and io2 Block Express volumes:
Feature | gp3 | io2 Block Express |
---|---|---|
Durability | 99.8% – 99.9% durability | 99.999% durability |
Use Cases | Low-latency interactive apps | Workloads needing sub-millisecond latency |
Volume Size | 1 GiB – 16 TiB | 4 GiB – 64 TiB |
Max IOPS per Volume | 16,000 | 256,000 |
Max Throughput per Volume | 1,000 MiB/s | 4,000 MiB/s |
Latency | Single digit millisecond | Sub-millisecond |
Price | Storage: $0.08/GB-month | Storage: $0.125/GB-month |
Benchmarking System Configuration
The following configuration was implemented to run performance tests for comparison:
- Instance Type: Amazon EC2 r5b.24xlarge with 96 vCPU and 768GB RAM.
- OS: Red Hat Enterprise Linux Server 7.9.
- Oracle Database: Version 12.1.0.2.
- Storage: Provisioned gp3 and io2 Block Express to match IOPS (80,000 IOPS) and throughput (8,000 MBps). This resulted in eight gp3 volumes versus two io2 Block Express volumes.
Data Generation for Benchmarking
To assess performance between Amazon EBS gp3 and io2 Block Express, I loaded my Oracle database with approximately 500 GB of data using the sbutil tool, which creates an online transaction processing (OLTP) schema. For additional insights on data creation for benchmarking, refer to this link.
Benchmark Performance Analysis
To benchmark performance, I generated the load using Swingbench, executing stress tests on each storage type. The analysis indicates that io2 Block Express significantly enhances database performance, making it a suitable choice for organizations prioritizing efficiency.
For those interested in further reading about journalistic practices, you might find this blog post engaging. Moreover, if you are seeking authoritative guidance on management development plans, consider visiting SHRM. Lastly, for insights on navigating the onboarding process at Amazon, check out this excellent resource.