mysql测试性能指标_测试方法_云数据库 RDS_性能白皮书_MySQL_华为云

本文介绍了如何使用Sysbench工具对华为云上的MySQL 8.0数据库进行性能测试。测试环境中包含了ECS的配置、数据库设置以及测试步骤,包括数据导入、压测和清理过程,旨在评估数据库在高并发场景下的性能表现。
摘要由CSDN通过智能技术生成

MySQL是最受欢迎的开源数据库之一,性能卓越,搭配LAMP,成为WEB开发的高效解决方案。主要解决用户高并发场景下,数据库性能差、数据复制延迟突出、数据库故障恢复时间长等问题。

当前,MySQL主要提供了即开即用、备份恢复、数据迁移、安全防护、轻松扩容和高可用六大功能。您可通过几步简单的配置,在几分钟内获得更高性能、更具扩展性的生产数据库,同时保证数据库环境的数据完整性和业务持续可用性。

测试环境区域:华北-北京一。

可用分区:可用区1。

弹性云服务器(Elastic Cloud Server,简称ECS):规格选择通用计算型c3.2xlarge.2,8U16GB,操作系统镜像使用CentOS7.4 64位版本,详见图1。由于压测工具需要安装额外的编译工具,建议ECS绑定弹性IP。

图1ECS配置

5cb2bf948107a3991b2c7335ddb3e4d6.png

4a937f0572e3522adddda4770aec8750.png

MySQL 8.0测试环境如下:

区域:华北-北京四。

可用分区:可用区2。

弹性云服务器(Elastic Cloud Server,简称ECS):规格选择通用计算增强型 | c6.4xlarge.2 | 16vCPUs | 32GB,操作系统镜像使用CentOS 7.6 64bit位版本。由于压测工具需要安装额外的编译工具,建议ECS绑定弹性IP。

测试工具

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

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

# wget -c https://github.com/akopytov/sysbench/archive/1.0.12.zip

# yum install autoconf libtool mysql mysql-devel vim unzip

# unzip 1.0.12.zip

# cd sysbench-1.0.12

# ./autogen.sh

# ./configure

# make

# make install

测试步骤

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

导入数据。

使用mysql命令登录数据库,并创建测试数据库“loadtest”。

mysql -u root -P 3306-h-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=--oltp-tables-count=64 --oltp-table-size=10000000 --num-threads=20 prepare

压测数据。

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=--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=--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条:

SELECTcFROM${rand_table_name}WHEREid BETWEEN ${rand_id_start}AND${rand_id_end};

SELECTSUM(K)FROM${rand_table_name}WHEREid BETWEEN ${rand_id_start}AND${rand_id_end};

SELECTcFROM${rand_table_name}WHEREid BETWEEN ${rand_id_start}AND${rand_id_end}ORDER BYc;

SELECT DISTINCTcFROM${rand_table_name}WHEREid BETWEEN ${rand_id_start}AND${rand_id_end}ORDER BYc;

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等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值