新用户首次购买实例,您可以参考本文测试实例性能并提交测试报告。提交测试报告后可以享受续费优惠,如果您的测试报告被评为优秀测试报告,还会赠送精美礼品。

背景信息

RDS MySQL性能测试活动详情请参见性能测试活动

实例性能测试的指标包括:

  • 每秒执行事务数TPS(Transactions Per Second)

    数据库每秒执行的事务数,以COMMIT成功次数为准。

    • SysBench标准OLTP读写混合场景中一个事务包含18个读写SQL。
    • SysBench标准OLTP只读场景中一个事务包含14个读SQL(10条主键点查询、4条范围查询)。
    • SysBench标准OLTP只写场景中一个事务包含4个写SQL(2条UPDATE、1条DETELE、1条INSERT)。
  • 每秒执行请求数QPS(Queries Per Second)

    数据库每秒执行的SQL数,包含INSERT、SELECT、UPDATE、DETELE、COMMIT等。

SysBench参数说明

参数 说明
db-driver 数据库引擎。
mysql-host RDS实例连接地址。
mysql-port RDS实例连接端口。
mysql-user RDS实例账号。
mysql-password RDS实例账号对应的密码。
mysql-db RDS实例数据库名。
table_size 测试表大小。
tables 测试表数量。
events 测试请求数量。
time 测试时间。
threads 测试线程数。
percentile 需要统计的百分比,默认值为95%,即请求在95%的情况下的执行时间。
report-interval 表示N秒输出一次测试进度报告,0表示关闭测试进度报告输出,仅输出最终的报告结果。
skip-trx 是否跳过事务。
  • 1:跳过
  • 0:不跳过

性能测试步骤

  1. 登录ECS实例,通过如下步骤安装SysBench。
    yum install gcc gcc-c++ autoconf automake make libtool bzr mysql-devel git mysql
    git clone https://github.com/akopytov/sysbench.git
    ##从git中下载sysbench
    cd sysbench
    ##打开sysbench目录
    git checkout 1.0.18
    ##切换到sysbench 1.0.18版本
    ./autogen.sh
    ##运行autogen.sh
    ./configure --prefix=/usr --mandir=/usr/share/man
    make
    ##编译
    make install
  2. 进行性能测试,包括OLTP读写混合场景压测、OLTP只读场景压测和OLTP只写场景压测。
    • OLTP读写混合场景压测

      参考如下命令进行测试,参数说明请参见SysBench参数说明

      步骤一:准备数据
      sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300  --threads=XXX oltp_read_write prepare
      
      步骤二:运行workload
      sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300   --threads=XXX --percentile=95 --report-interval=1 oltp_read_write run
      
      步骤三:清理数据
      sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300   --threads=XXX --percentile=95  oltp_read_write cleanup
      说明 测试结果示例如下:
      • QPS:23869.32
      • TPS:1193.47
      • 响应时间(RT):36.89 ms
      OLTP读写混合场景压测
    • OLTP只读场景压测

      参考如下命令进行测试,参数说明请参见SysBench参数说明

      步骤一:准备数据
      sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300  --threads=XXX  oltp_read_only prepare
      
      步骤二:运行workload
      sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300  --threads=XXX --percentile=95 --skip-trx=1 --report-interval=1 oltp_read_only run
      
      步骤三:清理数据
      sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300   --threads=XXX --percentile=95 oltp_read_only cleanup
      说明 测试结果示例如下:
      • QPS:26130.73
      • 响应时间(RT):33.72 ms
      OLTP只读场景压测
    • OLTP只写场景压测

      参考如下命令进行测试,参数说明请参见SysBench参数说明

      步骤一:准备数据
      sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300  --threads=XXX  oltp_write_only prepare
      
      步骤二:运行workload
      sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300   --threads=XXX --percentile=95 --report-interval=1 oltp_write_only run
      
      步骤三:清理数据
      sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300   --threads=XXX --percentile=95  oltp_write_only cleanup
      说明 测试结果示例如下:
      • TPS:4255.01
      • 响应时间(RT):16.71 ms
      OLTP只写场景压测
  3. 下载MySQL性能测试报告模板,填写后在性能测试数据提交页提交。