此篇接上一篇OpenEuler上MySQL的部署与使用,最终目的是在OpenEuler上用A-Tune工具实现对MySQL的性能调优,调优过程需要能对性能进行评价的工具,于是选择了sysbench。
x86_64 + VMWare + openEuler 20.03 LTS SP1
sysbench1.0
(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
再执行上述命令,运行成功!
(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每个核的使用情况:
以下是测试结果:
我们关注的两个参数:TPS和QPS: