RDS performance insights

RDS performance insights监控DB实例负载,以便我们可以分析和排查数据库性能问题。

使用TPCC生成工作负载

我们将使用基于 sysbench 的 Percona TPCC 基准测试脚本来生成负载。

先下载并编译tpcc:

git clone https://github.com/Percona-Lab/tpcc-mysql.git
cd tpcc-mysql/src
sudo yum install -y make gcc
sudo yum install mariadb-devel 
make

执行压力测试:

RDS_ENDPOINT = xxx;
USERNAME=admin
PASSWORD=xxxx;
mysql -h ${RDS_ENDPOINT} -u ${USERNAME} -p
CREATE DATABASE tpcc;
mysql -h $RDS_ENDPOINT -u $USERNAME -p tpcc < create_table.sql # 导入表
./tpcc_load -h $RDS_ENDPOINT -d tpcc -u $USERNAME -p $PASSWORD -w 1000 # 导入数据,如果这一步报错RDS_ENDPOINT可以直接使用IP

./tpcc_start -h $RDS_ENDPOINT -d tpcc -u $USERNAME -p $PASSWORD -w 1000 -c 32 -r 10 -l 10800  # 进行压力测试 参数分别为 |hostname| |port| |dbname| |user| |WAREHOUSES| |CONNECTIONS| |WARMUP TIME| |BENCHMARK TIME|

详细的参数说明见: https://github.com/Percona-Lab/tpcc-mysql

image-20240701215113216

查看performance insight

选择 RDS 实例。接下来,选择 Monitoring 选项卡, 从下拉菜单中选择 Monitoring,然后选择 Performance Insights。这将在新的浏览器选项卡中打开该 DB 实例的 Performance Insights 仪表板

image-20240701201051666

这个 Performance Insights 仪表板如下:

image-20240701220320595

Database Load

数据库负载图表显示数据库活动与 DB 实例容量(由Max vCPU线表示)的比较, 可以按Wait、Database, SQL、Host和user中的任何一个维度显示负载。最常用的维度是Wait,它可以显示数据库引擎中哪种活动导致了负载:

image-20240701220532331

image-20240701220547747