PostgreSQL

Benchmark Tessell for PostgreSQL against Aurora PostgreSQL

August 18, 2023
Benchmark Tessell for PostgreSQL against Aurora PostgreSQL
ByRajnikant Rakesh
4 min read
TL;DR
  • Tessell benchmarked its HPC PostgreSQL against Amazon Aurora RDS for PostgreSQL using the PGIO/SLOB benchmarking tool.
  • Tessell for PostgreSQL offers two variations: High-Performance Compute with NVMe storage up to 2 million IOPS, and Standard Compute.
  • Both ran identical SLOB workloads of roughly 320 GB for two hours on matching 8-vCPU, 64 GB instance shapes.
  • Tessell HPC PostgreSQL produced 70% higher IOPS than Aurora; on smaller shapes the advantage exceeded 100%.
  • Tessell HPC has no IOPS metering, offering price predictability and major performance uplift at a lower cost for demanding workloads.

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 theslobbenchmark, 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.  
[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:  
    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 theREADME.


  • Start setting up PGIO and load schemas by running the following command:
     
    cd /home/ec2-user/pgio
    sh ./setup.sh

This loads approximately 320 GB of slob database.


  • Run the performance test with the following command:
     
    cd /home/ec2-user/pgio
    sh ./runit.sh

After 2 hours of running the benchmark, here are the results:  
 
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.
 
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

Selecttesl_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.  
 
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.
 
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.

FAQs
Yes, Tessell HPC PostgreSQL is faster than Aurora PostgreSQL, producing 70% higher IOPS on identical SLOB workloads with 8 vCPU/64 GB shapes, and over 100% higher IOPS on smaller shapes.
Tessell HPC uses locally attached NVMe storage delivering up to 2 million IOPS with no IOPS metering, while Aurora PostgreSQL is Amazon's PostgreSQL-compatible service offering up to 3x standard PostgreSQL throughput.
PostgreSQL performance is benchmarked using PGIO (SLOB) tool measuring RIOPS and cache hits per second across configurable schemas, threads, work units, scale, and update percentages over fixed run times.
Tessell HPC for PostgreSQL is a high-performance compute shape with locally attached NVMe storage achieving up to 2 million IOPS, cloud-native snapshots, on-demand stop/start, and utility-based consumption pricing.
Tessell HPC produced 166,290 RIOPS on an 8 vCPU/64 GB shape, compared to Aurora PostgreSQL's 95,880 RIOPS, and 118,124 versus 61,350 RIOPS on smaller 4 vCPU/32 GB shapes.
Related Blogs