DEV Community

Cover image for RDS MySQL Load Testing with Sysbench
Adrien Mornet for AWS Community Builders

Posted on

2

RDS MySQL Load Testing with Sysbench

Sometimes you need to do a load test on MySQL Database to test Auto-Scaling for example. I found a very useful tool called Sysbench that I will present in this article.

Install Sysbench

Open your terminal and run :

curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.deb.sh | sudo bash

sudo apt -y install sysbench
Enter fullscreen mode Exit fullscreen mode

Prepare for Load Testing

Create a “test” database and run sysbench prepare command :

mysql -h YOUR_MYSQL_HOST -u YOUR_MYSQL_USER -pYOUR_MYSQL_PASSWORD -e 'CREATE DATABASE test;'

sudo sysbench /usr/share/sysbench/oltp_read_only.lua --db-driver=mysql --mysql-db=test --mysql-user=YOUR_MYSQL_USER --mysql-password=YOUR_MYSQL_PASSWORD  --mysql-host=YOUR_MYSQL_HOST --threads=80 prepare
Enter fullscreen mode Exit fullscreen mode

Image description

Run MySQL Load Testing

Let’s load test a fresh created database with only 1 instance (Aurora Auto-Scaling is configured on the test-load-database cluster) :

Image description

Here is the CPU of the instance :

Image description

Create a bash script load_test_mysql.sh and paste inside :

#!/bin/bash

for ((n=0;n<100;n++))
do
 echo $(date)
 sysbench /usr/share/sysbench/oltp_read_only.lua --db-driver=mysql --mysql-db=test --mysql-user=YOUR_MYSQL_USER --mysql-password=YOUR_MYSQL_PASSWORD  --mysql-host=YOUR_MYSQL_HOST --threads=80 run
 echo $n
done
Enter fullscreen mode Exit fullscreen mode

And run the test :

chmod +x load_test_mysql.sh
./load_test_mysql.sh
Enter fullscreen mode Exit fullscreen mode

Here come the magic :

Image description

And you can see your CPU increase :

Image description

Finally I see that my autoscaling works well as I have two new instances :

Image description

Thanks to https://github.com/akopytov/sysbench 😁

If you liked this post, you can find more on my blog https://adrien-mornet.tech/ 🚀

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Create a simple OTP system with AWS Serverless cover image

Create a simple OTP system with AWS Serverless

Implement a One Time Password (OTP) system with AWS Serverless services including Lambda, API Gateway, DynamoDB, Simple Email Service (SES), and Amplify Web Hosting using VueJS for the frontend.

Read full post