OpenEuler上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
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
    TPS:Transactions Per Second,每秒钟处理完的事务次数,即服务器每秒处理的事务数。TPS包括一条消息入、一条消息出和一次用户数据库访问。一般TPS是对整个系统来讲的。一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较多。 QPS: Queries Per Second,每秒钟处理完请求的次数;重点在“处理完”,具体是指发出请求到服务器处理完成功返回结果。
经验分享 程序员 微信小程序 职场和发展