sysbench工具测试mysql性能
本文介绍mysql 性能测试一些方法,然后通过测试工具之一sysbench对mysql进行性能测试。
MySQL 是一个关系型数据库管理系统。sysbench是一款开源的多线程性能测试工具,可以执行CPU、内存、线程、IO、数据库等方面的性能测试
对MySQL的基准测试,有如下两种思路:
(1)针对整个系统的基准测试:通过http请求进行测试,如通过浏览器、APP或postman等测试工具。该方案的优点是能够更好的针对整个系统,测试结果更加准确;缺点是设计复杂实现困难。
(2)只针对MySQL的基准测试:优点和缺点与针对整个系统的测试恰好相反。
在针对MySQL进行基准测试时,一般使用专门的工具进行,例如mysqlslap、sysbench等。其中,sysbench比mysqlslap更通用、更强大,且更适合Innodb(因为模拟了许多Innodb的IO特性),下面介绍使用sysbench进行基准测试的方法。
利用sysbench对MySQL进行性能测试
1、 安装准备
华为云购买一台鲲鹏服务器(sysbench和mysql部署在同一台鲲鹏服务器上,当然也可以部署在不同的服务器上)
本文以云服务器KC1实例搭建,云服务器配置如表1-1所示。
表1-1 云服务器配置
项目 | 说明 |
规格 | kc1.large.2 | 2vCPUs | 4GB |
磁盘 | 系统盘:高IO(40GB) |
操作系统要求如表1-2所示。
表1-2 操作系统要求
项目 | 说明 | 下载地址 |
CentOS | 7.6 | 在公共镜像中已提供。 |
Kernel | 4.14.0-115 | 在公共镜像中已提供。 |
2、 部署MySQL
鲲鹏社区软件栈已经有部署文档,请参考
https://www.huaweicloud.com/kunpeng/software/mysql0.html
3、 部署sysbench
鲲鹏社区软件栈已经有部署文档,请参考
https://www.huaweicloud.com/kunpeng/software/sysbench.html
4、 登录mysql
mysql –uroot -p123456
5、 创建sysbench测试使用的数据库“dbtest”
create database dbtest;
show databases;
6、 准备数据
执行命令:
sysbench /usr/local/share/sysbench/oltp_read_write.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=dbtest --db-driver=mysql --tables=1 --table-size=10000 --report-interval=30 --threads=1 --time=30 prepare
显示如下:
7、 执行测试
执行命令:
sysbench /usr/local/share/sysbench/oltp_read_write.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=dbtest --db-driver=mysql --tables=1 --table-size=10000 --report-interval=30 --threads=1 --time=30 run
说明:
其中,对于我们比较重要的信息包括:
queries:查询总数及qps
transactions:事务总数及tps
Latency-95th percentile:前95%的请求的最大响应时间,本例中是7.7毫秒
显示如下:
8、 清理数据
执行完测试后,清理数据,否则后面的测试会受到影响。执行命令如下:
sysbench /usr/local/share/sysbench/oltp_read_write.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=dbtest --db-driver=mysql --tables=1 --table-size=10000 --report-interval=30 --threads=1 --time=30 cleanup
显示如下:
- 点赞
- 收藏
- 关注作者
评论(0)