PostgreSQL

Benchmark Tessell for PostgreSQL against Aurora PostgreSQL

Rajnikant Rakesh
Rajnikant Rakesh
,
August 18, 2023
Share this blog
arrow icon
Benchmark Tessell for PostgreSQL against Aurora PostgreSQL

At Tessell, we want to be the most performant database service available out there, and hence we thought to give Aurora RDS for PostgreSQL a shot to see what it has to offer. The true way of evaluating the performance of the database is by running performance benchmarks for the databases running on the cloud.

Aurora PostgreSQL is Amazon’s enterprise-class PostgreSQL-compatible database and offers Up to three times the throughput of standard PostgreSQL.

In this article, we run performance benchmarks to evaluate, analyze, and compare the performance of PostgreSQL database engines running on AWS for Tessell and compare that against Aurora RDS for PostgreSQL. We have used the PGIO benchmarking tool for the benchmarking process.

Tessell for PostgreSQL is offered in the following variations:

High-Performance Compute (HPC): Run your databases on high-performance cloud infrastructure with locally attached NVMe storage. Achieve up to 2 million IOPS. Take cloud-native snapshots the same way you do for standard cloud storage. Stop/start the service at any time without any loss of data. Enjoy utility consumption.

Standard Compute: Elastic cloud storage for your standard workloads. Take cloud-native snapshots. Stop/start the service on demand for utility consumption.

For the purpose of this benchmarking exercise, we will use the Tessell HPC shapes.

Before starting the benchmarking process, you need to get your environment ready. You can refer to this article to set up your environment.

Set up Aurora PostgreSQL

To set up Aurora PostgreSQL, choose the required version of PostgreSQL.

Set up Aurora PostgreSQL

For the purpose of this benchmark, we are choosing PostgreSQL 14.6 with a configuration of db.r5.2xlarge [8 vCPU, 64 GB Memory]. As we are going to run some heavy benchmark here, make sure to provision storage of the order of more than 500 GB.

Set up Slob client Instance for Benchmark

For running the slob benchmark, let's provision an EC2 instance in the same VPC as the provisioned Aurora PostgreSQL.

For a step-by-step guide for setting up a client, please refer to our earlier PostgreSQL benchmark blog.

Verify connectivity to Aurora PostgreSQL instance from the client EC2 instance using psql.

Copied to clipboard!

[ec2-user@ip-10-0-4x-1xx ~]$ psql
psql (9.2.24, server 14.7)
WARNING: psql version 9.2, server version 14.0.
Some psql features might not work.
Type "help" for help.

slob=#
 

Now that we have both the client EC2 and Aurora PostgreSQL provisioned and ready, let's run the SLOB benchmark.

Run the benchmark

Before you run the benchmark, configure the PGIO configuration file, and start the Setup (load schemas), and

  • Open the  /home/ec2-user/pgio/pgio.conf  file and replace the default parameter values with the following values:
Copied to clipboard!

UPDATE_PCT=15
RUN_TIME=7200
NUM_SCHEMAS=32
NUM_THREADS=4
WORK_UNIT=200
UPDATE_WORK_UNIT=8
SCALE=10G

DBNAME=slob CONNECT_STRING="slob"

CREATE_BASE_TABLE=TRUE
 

For more information about the PGIO configuration parameter, see the README.

  • Start setting up PGIO and load schemas by running the following command:
Copied to clipboard!

cd /home/ec2-user/pgio
sh ./setup.sh
 

This loads approximately 320 GB of slob database.

  • Run the performance test with the following command:
Copied to clipboard!

cd /home/ec2-user/pgio
sh ./runit.sh
 

After 2 hours of running the benchmark, here are the results:

Copied to clipboard!

DBNAME: slob. 32 schemas, 2 threads(each). Run time: 7200 seconds. 
RIOPS >95880< CACHE_HITS/s >56600<
 

We also ran the benchmark on a smaller shape of Aurora PostgreSQL, db.r5.xlarge [4 vCPUs, 32 GB Memory]. Following are the results.

Copied to clipboard!

DBNAME: PostgreSQL. 32 schemas, 2 threads(each). Run time: 7200 seconds. 
RIOPS >61350< CACHE_HITS/s >16122<
 

Now, let's use the same steps to run the benchmark against the Tessell HPC database service. Provision a Tessell database of the same size [8 vCPUs, 64 GB Memory] as Aurora PostgreSQL.

Create a PostgreSQL database in Tessell

Select tesl_8h_a Tessell shape for provisioning database and choose the amount of storage required.

After provisioning the Tessell database, run the benchmark with the same slob parameters.

Copied to clipboard!

DBNAME: slob. 32 schemas, 2 threads(each). Run time: 7200 seconds. 
RIOPS >166290< CACHE_HITS/s >262122<
 

We also ran the benchmark on a smaller shape of Tessell HPC, tesl_4h_c [4 vCPUs, 32 GB Memory]. Following are the results.

Copied to clipboard!

DBNAME: PostgreSQL. 32 schemas, 2 threads(each). Run time: 7200 seconds. 
RIOPS >118124< CACHE_HITS/s >18520<
 

Results

Here is the comparison between Aurora PostgreSQL and Tessell HPC benchmark numbers, and we clearly see Tessell HPC performs much better than Aurora PostgreSQL.

Conclusion

As you can see from the results, Tessell HPC PostgreSQL produced 70% higher IOPS as compared to Aurora PostgreSQL for the identical SLOB workload at a much lower cost.

For lower shapes, the IOPS produced by Tessell HPC outperformed Aurora PostgreSQL by more than 100%.

With Tessell HPC there is no IOPS metering so you always get price predictability alongside massive performance uplift.

Your demanding workloads can significantly benefit from Tessell HPC database service.

To get started, you can sign up for a free trial here.

Follow us
Youtube Button