更新时间:2025-10-16 gmt 08:00

测试方法-j9九游会登录

云数据库rds for mysql 100%兼容原生mysql,拥有稳定可靠,高性能,智能运维,高等级安全保障,即开即用,弹性伸缩等特点。

测试环境

rds for mysql 5.7、5.6测试环境如下:

  • 区域:华北-北京一。
  • 可用分区:可用区1。
  • 弹性云服务器(elastic cloud server,简称ecs):规格选择通用计算型c3.2xlarge.2,8u16gb,操作系统镜像使用centos7.4 64位版本。由于压测工具需要安装额外的编译工具,建议ecs绑定弹性ip。
rds for mysql 8.0测试环境如下:
  • 区域:西南-贵阳一。
  • 可用分区:可用区1。
  • 弹性云服务器(elastic cloud server,简称ecs):规格选择通用计算增强型 | c6.4xlarge.2 | 16vcpus | 32gb,操作系统镜像使用centos 7.6 64bit位版本。由于压测工具需要安装额外的编译工具,建议ecs绑定弹性ip。

测试工具

sysbench是一款基于luajit的,模块化多线程基准测试工具,常用于数据库基准测试。通过内置的数据库测试模型,采用多线程并发操作来评估数据库的性能。了解sysbench更多详情,请访问。

本次测试使用的为1.0.18,具体的安装命令如下:

# wget -c https://github.com/akopytov/sysbench/archive/1.0.18.zip
# yum install autoconf libtool mysql mysql-devel vim unzip
# unzip 1.0.18.zip
# cd sysbench-1.0.18
# ./autogen.sh
# ./configure
# make
# make install

测试步骤

请根据实际信息,替换数据库、连接ip与用户密码。

  1. 导入数据。
    1. 使用mysql命令登录数据库,并创建测试数据库“loadtest”
      mysql -u root -p 3306 -h <host> -p -e "create database loadtest"
    2. 使用sysbench命令导入测试背景数据到“loadtest”数据库。
      sysbench --test=/usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password=> --mysql-port=3306 --mysql-host=<host> --oltp-tables-count=64 --oltp-table-size=10000000  --num-threads=20 prepare
  2. 压测数据。
    sysbench --test=/usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password=> --mysql-port=3306 --mysql-host=<host> --oltp-tables-count=64 --oltp-table-size=10000000 --max-time=3600 --max-requests=0 --num-threads=200 --report-interval=3  --forced-shutdown=1 run
  3. 清理数据。
    sysbench --test=/usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password=> --mysql-port=3306 --mysql-host=<host>  --oltp-tables-count=64 --oltp-table-size=10000000 --max-time=3600 --max-requests=0 --num-threads=200 cleanup

测试模型

  1. 表结构
    create table `sbtest` (
    `id` integer unsigned not null auto_increment,
    `k` integer unsigned default '0' not null,
    `c` char(120) default '' not null,
    `pad` char(60) default '' not null,
    primary key (`id`)
    ) engine=innodb
  2. 读写比

    sysbench默认提交的事务中包含18条sql语句,具体执行语句和条数如下:

    • 主键select语句,10条:
      select c from ${rand_table_name} where id=${rand_id};
    • 范围select语句,4条:
      select c from ${rand_table_name} where id between ${rand_id_start} and ${rand_id_end};
      select sum(k) from ${rand_table_name} where id between ${rand_id_start} and ${rand_id_end};
      select c from ${rand_table_name} where id between ${rand_id_start} and ${rand_id_end} order by c;
      select distinct c from ${rand_table_name} where id between ${rand_id_start} and ${rand_id_end} order by c;
    • update语句,2条:
      update ${rand_table_name} set k=k 1 where id=${rand_id}
      update ${rand_table_name} set c=${rand_str} where id=${rand_id}
    • delete语句,1条:
      delete from ${rand_table_name}  where id=${rand_id}
    • insert语句,1条:
      insert into ${rand_table_name} (id, k, c, pad) values (${rand_id},${rand_k},${rand_str_c},${rand_str_pad})

测试指标

  • tps:transaction per second,数据库每秒执行的事务数,每个事务中包含18条sql语句。
  • qps:query per second,数据库每秒执行的sql数,包含insert、select、update、delete等。

相关文档

网站地图