更新时间: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与用户密码。
- 导入数据。
- 使用mysql命令登录数据库,并创建测试数据库“loadtest”。
mysql -u root -p 3306 -h <host> -p -e "create database loadtest"
- 使用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
- 使用mysql命令登录数据库,并创建测试数据库“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 --max-time=3600 --max-requests=0 --num-threads=200 --report-interval=3 --forced-shutdown=1 run - 清理数据。
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
测试模型
- 表结构
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
- 读写比
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})
- 主键select语句,10条:
测试指标
- tps:transaction per second,数据库每秒执行的事务数,每个事务中包含18条sql语句。
- qps:query per second,数据库每秒执行的sql数,包含insert、select、update、delete等。
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨