安装

https://github.com/akopytov/sysbench#build-and-install

github地址如上:

1.将安装包上传至/usr/local下

下载地址:https://github.com/akopytov/sysbench/archive/1.0.19.tar.gz

2.解压

tar zxf sysbench-1.0.17.tar.gz

3.安装依赖

yum -y install gcc gcc-c++ automake make libtool

4.编译

cd sysbench-1.0.17

./autogen.sh

mv sysbench-1.0.17 sysbench

./configure --prefix=/usr/local/sysbench/ --with-mysql --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib

make

make install

5.查看版本,如果此时报错

/usr/local/sysbench/bin/sysbench --version

/usr/local/sysbench/bin/sysbench: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

解决: ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64

再次看版本,正常

测试

测试过程

测试分为三大阶段

prepare阶段:建立测试表,填充测试数据

run阶段:执行压力测试

cleanup阶段:清理测试数据

测试类型支持fileio,cpu,memory,threads,mutex,sysbench也支持lua脚本,也自带了部分lua脚本,位于share/sysbench下。

1.测试

测试的sbtest数据库必须提前在测试的数据库手动创建

create database sbtest

【准备数据】

sysbench ./tests/include/oltp_legacy/oltp.lua  --mysql-host=10.1.2.65 --mysql-port=3306 --mysql-user=root --mysql-password=xxxx --oltp-test-mode=complex --oltp-tables-count=5 --oltp-table-size=100 --threads=10 --time=120 --report-interval=10 prepare

mysql-host:mysql的主机IP

–mysql-port:mysql的端口

–mysql-user:mysql连接用户

–mysql-password:mysql连接密码

–mysql-db:mysql测试数据库名称,需要提前创建

–oltp-tables-count:测试表的数量

–oltp-table-size:每张测试表的数据量,记录数

–report-interval:指定测试进度报告输出的间隔,单位为秒

–oltp-test-mode:执行模式,可选值有simple(简单查询)、complex(事务模式)、nontrx(非事务模式)。默认是complex

–oltp-read-only:是否设置为只读模式,默认为off

–time:压力测试的持续时间,单位为秒

–threads:并发线程

【执行测试】

sysbench ./tests/include/oltp_legacy/oltp.lua  --mysql-host=10.1.2.65 --mysql-port=3306 --mysql-user=root --mysql-password=xxxx --oltp-test-mode=complex --oltp-tables-count=5 --oltp-table-size=100 --threads=10 --time=120 --mysql-db=sbtest --report-   interval=10 run

Threads started!

[ 10s ] thds: 10 tps: 649.73 qps: 13523.61 (r/w/o: 9552.34/2639.12/1332.16) lat (ms,95%): 24.83 err/s: 31.69 reconn/s: 0.00

[ 20s ] thds: 10 tps: 528.10 qps: 10898.10 (r/w/o: 7682.83/2138.18/1077.09) lat (ms,95%): 27.17 err/s: 20.90 reconn/s: 0.00

[ 30s ] thds: 10 tps: 634.90 qps: 13173.80 (r/w/o: 9300.00/2574.70/1299.10) lat (ms,95%): 24.83 err/s: 29.30 reconn/s: 0.00

[ 40s ] thds: 10 tps: 729.60 qps: 15097.35 (r/w/o: 10650.46/2956.79/1490.09) lat (ms,95%): 23.52 err/s: 30.90 reconn/s: 0.00

[ 50s ] thds: 10 tps: 482.89 qps: 9978.35 (r/w/o: 7037.39/1955.17/985.79) lat (ms,95%): 27.17 err/s: 20.00 reconn/s: 0.00

[ 60s ] thds: 10 tps: 385.01 qps: 7983.44 (r/w/o: 5634.07/1561.95/787.42) lat (ms,95%): 32.53 err/s: 17.40 reconn/s: 0.00

[ 70s ] thds: 10 tps: 605.90 qps: 12551.87 (r/w/o: 8857.38/2455.99/1238.50) lat (ms,95%): 25.28 err/s: 26.70 reconn/s: 0.00

[ 80s ] thds: 10 tps: 553.69 qps: 11437.85 (r/w/o: 8066.29/2241.77/1129.78) lat (ms,95%): 26.20 err/s: 22.40 reconn/s: 0.00

[ 90s ] thds: 10 tps: 475.40 qps: 9826.06 (r/w/o: 6929.44/1926.31/970.31) lat (ms,95%): 24.83 err/s: 19.50 reconn/s: 0.00

[ 100s ] thds: 10 tps: 689.71 qps: 14317.27 (r/w/o: 10107.12/2798.33/1411.82) lat (ms,95%): 24.83 err/s: 32.40 reconn/s: 0.00

[ 110s ] thds: 10 tps: 466.89 qps: 9604.36 (r/w/o: 6766.83/1887.45/950.08) lat (ms,95%): 27.66 err/s: 16.30 reconn/s: 0.00

[ 120s ] thds: 10 tps: 613.71 qps: 12685.97 (r/w/o: 8946.32/2486.73/1252.92) lat (ms,95%): 29.19 err/s: 25.50 reconn/s: 0.00

SQL statistics:

queries performed:

read:                            995358        #总的select数量

write:                           276259        #总的select数量

other:                           139264       #其他操作。如commit

total:                           1410881      #全部总数

transactions:                        68167  (567.96 per sec.)  ###总事务数(TPS,每秒事务数)*****

queries:                             1410881 (11755.21 per sec.)  ##读事务数(QPS,每秒事务数)******

ignored errors:                      2930   (24.41 per sec.)   ##忽略错误

reconnects:                          0      (0.00 per sec.)

General statistics:

total time:                          120.0194s   ### 120.0292s  总耗时

total number of events:              68167  ##共发生多少事务

Latency (ms):

min:                                    6.94     最小耗时

avg:                                   17.60   平均耗时

max:                                1709.26  最长耗时

95th percentile:                25.74  95%请求的最大响应时间   ******

sum:                             1199824.72   总耗时

Threads fairness:     ---与线程相关的指标

events (avg/stddev):           6816.7000/32.72    ###事件(平均值/偏差)

execution time (avg/stddev):   119.9825/0.01    ###执行时间(平均值/偏差)

【清理运行结果】

sysbench ./tests/include/oltp_legacy/oltp.lua  --mysql-host=10.1.2.65 --mysql-port=3306 --mysql-user=root --mysql-password=1qaz@WSX --oltp-test-mode=complex --oltp-tables-count=5 --oltp-table-size=100 --threads=10 --time=120 --mysql-db=sbtest --report-interval=10 cleanup

2.分析运行结果以及图形化展示测试结果

【创建监控脚本】

[root@backup scripts]# cat sysbench_monitor.sh   一般后台运行

#!/bin/bash

#开始前获取全局配置参数

#每五秒获取一次cpu load,MySQL全局信息,InnoDB引擎相关信息,线程信息

INTERVAL=5

PREFIX=$INTERVAL-sec-status

RUNFILE=/usr/local/mysql/sysbench/monitor/run

mysql -uroot -p -h10.1.2.65 -e 'show global variables'>>mysql-variables

while  test -e $RUNFILE; do

file=$(date +%F_%H)

sleep=$(date +%s.%N |awk "{print $INTERVAL -(\$1 % $INTERVAL)}")

sleep $sleep

ts="$(date +"TS %s.%N %F %T")"

loadavg="$(uptime)"

echo "$ts $loadavg">> $PREFIX-${file}-status

mysql -uroot -p  -h10.1.2.65-e "show global status" >> $PREFIX-${file}-status 2>/dev/null &

echo "$ts $loadavg">> $PREFIX-${file}-innodbstatus

mysql -uroot -p -h10.1.2.65 -e "show engine innodb status\G" >> $PREFIX-${file}-innodbstatus 2>/dev/null &

echo "$ts $loadavg">> $PREFIX-${file}-processlist

mysql -uroot -p -h10.1.2.65  -e "show full processlist\G" >>$PREFIX-${file}-processlist 2>/dev/null &

echo $ts

done

echo Exiting because $RUNFILE not exist

【创建分析脚本,用來分析 sysbench_monitor.sh监控脚本】

[root@backup scripts]# cat sysbench_anaylyze.sh

#!/bin/bash

awk '

BEGIN{

printf "#ts date time load QPS";

fmt = " %.2f";

}

/^TS/ { # The timestamp lines begin with TS.

ts = substr($2, 1, index($2,".") - 1);

load = NF -  2;

diff = ts -prev_ts;

prev_ts = ts;

printf "\n%s %s %s %s",ts,$3,$4,substr($load, 1, length($load)-1);

}

/Queries/ {

printf fmt, ($2-Queries)/diff;

Queries=$2

}

' "$@"

【使用方法】

1.创建/usr/local/mysql/sysbench/monitor/run文件

2.执行测试

sysbench ./tests/include/oltp_legacy/oltp.lua  --mysql-host=10.1.2.65 --mysql-port=3306 --mysql-user=root --mysql-password=xxxx --oltp-test-mode=complex --oltp-tables-count=5 --oltp-table-size=100 --threads=10 --time=120 --mysql-db=sbtest --report-   interval=10 run

在其他窗口立刻执行

sh sysbench_monitor.sh

3.测试结束后,删除/usr/local/mysql/sysbench/monitor/run文件,即可以停止监控

rm -fr /usr/local/mysql/sysbench/monitor/run

4. 进入到sysbench_monitor.sh所在目录下,可以找到三个文件

-rw-r--r-- 1 root root 361854 Apr 20 15:32 5-sec-status-2020-04-20_15-innodbstatus

-rw-r--r-- 1 root root 104644 Apr 20 15:32 5-sec-status-2020-04-20_15-processlist

-rw-r--r-- 1 root root 275907 Apr 20 15:32 5-sec-status-2020-04-20_15-status

我们在用分析脚本来进行结果分析

sh sysbench_anaylyze.sh 5-sec-status-2020-04-20_15-status  >sysbench_status_out.log

[root@ksrv-dct scripts]# vim sysbench_status_out.log

#ts date time load QPS

1587367785 2020-04-20 15:29:45 0.00 0.00

1587367790 2020-04-20 15:29:50 0.64 12230.80

1587367795 2020-04-20 15:29:55 1.23 14884.00

【出图】

在window下载gnuplot软件  下载地址:https://sourceforge.net/projects/gnuplot/

然后打开软件,将分析日志放到指定的路径

plot 'C:\Users\Mirror_liu\Desktop\sysbench_status_out.log' using 5 with linespoint title 'QPS',

gnuplot> plot 'C:\Users\Mirror_liu\Desktop\sysbench_status_out.log' using 4 with linespoint title 'load',

sysbench 1.0.6 mysql_sysbench mysql压测相关推荐

  1. sysbench 1.0.6 mysql_Sysbench 测试mysql数据库性能(version:sysbench-1.1.0)

    继上面安装完Mysql rpm 安装之后需要用sysbench对数据库进行性能测试: 下载 git clone https://github.com/akopytov/sysbench.git 或者直 ...

  2. MySQL压测工具--sysbench

    SysBench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.它主要包括以下几种方式的测试: 1.cpu性能  2.磁盘io性能  3.调度程序性能  ...

  3. Mysql压测工具mysqlslap 讲解

    参考文献: http://dev.mysql.com/doc/refman/5.1/en/mysqlslap.html http://www.ningoo.net/html/2008/mysql_lo ...

  4. mysql 压测结果_用mysqlslap压测mysql

    参考文献:http://my.oschina.net/costaxu/blog/108568 上面网友详细的列举了用mysqlslap对mysql的压力测试结果,我也照葫芦画瓢试了一次,结果如下: 以 ...

  5. [python运维] 使用python3制作一个mysql压测小工具!

    ​​0x01 argparse模块​​ ​ argparse是Python 标准库中推荐的命令行解析模块,他可以实现给出参数提示和接收用户输入的参数,类似linux的命令行功能:​ [root@yun ...

  6. mysql笔记(锁、事务、性能优化、压测结果)

    Mysql 该笔记,主要根据kkb课程并结合网上资料和自己的理解而形成. 一.Mysql架构 1.1 逻辑架构 这是从网上copy过来的图.网上一些教程会把mysql也进行分层. 连接层:Connec ...

  7. es用canals怎么和mysql同步_MySQL压测--注意事项和FAQ

    上次我们讲了TPCC的安装和一些使用方法,今天先不着急真正的做MySQL压力测试,先把我最近做压力测试的遇到的一些问题罗列出来,这样 后面做测试可以事半功倍. 1.注意事项 (1).提前规划好具体要测 ...

  8. mysql数据库压测_MySQL数据库压测有哪些注意事项和FAQ

    MySQL数据库压测有哪些注意事项和FAQ 发布时间:2020-05-12 15:12:49 来源:亿速云 阅读:216 作者:三月 下面讲讲关于MySQL数据库压测有哪些注意事项和FAQ,文字的奥妙 ...

  9. mysql为什么要压测_mysql集群压测的详细介绍

    本篇文章给大家带来的内容是关于mysql集群压测的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通 ...

最新文章

  1. 企业级闪存弥补数据经济价值短板
  2. 计算机辅助设计综合实践,计算机辅助设计毕业综合实践报告
  3. 求1-10000所有的素数
  4. springboot urlresource_Spring Boot上传文件+部署到Tomcat
  5. MRBS开源会议室预订系统安装
  6. 你怎么看当前中文语音识别技术在国内的应用?
  7. C语言从入门到精通——初阶6 指针
  8. 各行业的英语术语(绝对精华 1)
  9. 【每日经典】李嘉诚:赚钱可以无处不在、无时不有
  10. win中q-dir,everything,Windows Tabs,Clover各种效率神器(搜索,资源管理器,多标签)
  11. cpu排行计算机专业,cpu性能天梯图,详细教您电脑cpu排行榜
  12. gwo算法matlab源代码,智能优化算法应用:基于GWO优化BP神经网络 - 附代码
  13. Pub failed to delete entry because it was in use by anothe
  14. 还在收集资料?我这里有个github汇总
  15. Linux v4l2架构学习
  16. google pay(谷歌支付) 开发者账号配置的坑
  17. 设置firefox背景为黑夜模式
  18. openssh8.6默认不支持公钥ssh(gogs无法使用)
  19. Cocos2dx游戏开发笔记22:以仿《王者之剑》游戏源码为例,学习cocos2dx2.X到 3.0beta2 的升级(附源码)
  20. python写圣诞祝福语_有哪些高逼格的猪年春节祝福语?

热门文章

  1. TaffyDB – javascript数据库
  2. 深富策略:探底回升 巨震洗盘
  3. DolphinScheduler 邮件告警设置
  4. MYSQL数据库设计试卷b_MySQL数据库设计与应用智慧树期末考试免费答案
  5. 项目新添加iconfont图标
  6. MATLAB神经网络工具箱输入输出预处理相关参数设置
  7. WinEdt编辑中文
  8. [1]尝试用Unity3d制作一个王者荣耀(持续更新)-AssetBundle管理器
  9. 获取双卡手机的两个卡的IMSI
  10. iPhone无法唤醒Siri怎么办