OpenEuler上MySQL性能测试工具sysbench的部署与使用

此篇接上一篇OpenEuler上MySQL的部署与使用,最终目的是在OpenEuler上用A-Tune工具实现对MySQL的性能调优,调优过程需要能对性能进行评价的工具,于是选择了sysbench。

环境

x86_64 + VMWare + openEuler 20.03 LTS SP1
sysbench1.0

安装sysbench

(1)下载源码

wget https://github.com/akopytov/sysbench/archive/1.0.zip -O "sysbench-1.0.zip"
unzip sysbench-1.0.zip

(2)安装依赖包

yum install -y automake libtool openssl openssl-devel

(3)开始安装

cd sysbench-1.0
./autogen.sh
./configure
make
make install

(4)尝试使用

sysbench --version

提示:
在这里插入图片描述
找不到动态链接库libmysqlclient.so.21,需要设置对应路径的环境变量:

export LD_LIBRARY_PATH=/usr/local/mysql/lib/
# 为避免每次都需要export,可以将其加入动态链接库路径下
sed -i '$a\/usr/local/mysql/lib/' /etc/ld.so.conf
# 再更新一下动态链接库
ldconfig

再执行上述命令,运行成功!
在这里插入图片描述

准备测试并配置sysbench参数

(1)建立测试数据库

然后便可以用下面命令登录上mysql:

mysql -u root -p

密码是上一篇中设置的123456。
为了进行sysbench性能测试,我们需要在mysql上建立一个数据库,取名为sbtest:

CREATE DATABASE sbtest;
use sbtest;

查看有哪些数据库:

show databases;

退出mysql:

\q

(2)配置sysbench参数

建一个文件夹来放一些固定的配置参数

cd ~
mkdir mysql_log
cd mysql_log
touch sysbench_config

用vim等工具在sysbench_config中写入以下内容:

threads=32
report-interval=10
mysql-user=root
mysql-password=123456
mysql-host=localhost
mysql-port=3306
mysql-db=sbtest
db-driver=mysql

开始测试

本机只有4核,为了使mysql服务器与sysbench测试端尽量不互相影响,采用taskset命令绑核的方式进行性能测试。
停止mysql服务,绑定到0,1核重新运行:

service mysql stop
taskset -c 0,1 service mysql start

进入到上一步创建的目录,准备开始测试:

cd ~/mysql_log

第一步是做准备工作:

sysbench --config-file=sysbench_config oltp_read_write --tables=32 --table-size=200000 --time=30 prepare

然后正式开始测试,绑定到2,3核运行,结果输出到oltp_read_write.log:

taskset -c 2,3 sysbench --config-file=sysbench_config oltp_read_write --tables=32 --table-size=200000 --time=300 --mysql-ignore-errors=8005 run > oltp_read_write.log

测试完要进行清理:

sysbench --config-file=sysbench_config oltp_read_write --tables=32 --table-size=200000 --time=300 --mysql-ignore-errors=8005 cleanup

测试同时,我们可以另开一个终端,用top 1命令监控cpu每个核的使用情况:
OpenEuler上MySQL性能测试工具sysbench的部署与使用_第1张图片
以下是测试结果:
OpenEuler上MySQL性能测试工具sysbench的部署与使用_第2张图片
我们关注的两个参数:TPS和QPS:

  • TPS:Transactions Per Second,每秒钟处理完的事务次数,即服务器每秒处理的事务数。TPS包括一条消息入、一条消息出和一次用户数据库访问。一般TPS是对整个系统来讲的。一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较多。
  • QPS: Queries Per Second,每秒钟处理完请求的次数;重点在“处理完”,具体是指发出请求到服务器处理完成功返回结果。

你可能感兴趣的:(mysql,数据库,linux)