RDS performance insights
监控DB实例负载,以便我们可以分析和排查数据库性能问题。
我们将使用基于 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
选择 RDS 实例。接下来,选择 Monitoring 选项卡, 从下拉菜单中选择 Monitoring,然后选择 Performance Insights。这将在新的浏览器选项卡中打开该 DB 实例的 Performance Insights 仪表板。
这个 Performance Insights 仪表板如下:
数据库负载图表显示数据库活动与 DB 实例容量(由Max vCPU
线表示)的比较, 可以按Wait、Database, SQL、Host和user中的任何一个维度显示负载。最常用的维度是Wait,它可以显示数据库引擎中哪种活动导致了负载: