sysbench 1.0.6 mysql_sysbench mysql压测
安装
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压测相关推荐
- sysbench 1.0.6 mysql_Sysbench 测试mysql数据库性能(version:sysbench-1.1.0)
继上面安装完Mysql rpm 安装之后需要用sysbench对数据库进行性能测试: 下载 git clone https://github.com/akopytov/sysbench.git 或者直 ...
- MySQL压测工具--sysbench
SysBench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.它主要包括以下几种方式的测试: 1.cpu性能 2.磁盘io性能 3.调度程序性能 ...
- Mysql压测工具mysqlslap 讲解
参考文献: http://dev.mysql.com/doc/refman/5.1/en/mysqlslap.html http://www.ningoo.net/html/2008/mysql_lo ...
- mysql 压测结果_用mysqlslap压测mysql
参考文献:http://my.oschina.net/costaxu/blog/108568 上面网友详细的列举了用mysqlslap对mysql的压力测试结果,我也照葫芦画瓢试了一次,结果如下: 以 ...
- [python运维] 使用python3制作一个mysql压测小工具!
0x01 argparse模块 argparse是Python 标准库中推荐的命令行解析模块,他可以实现给出参数提示和接收用户输入的参数,类似linux的命令行功能: [root@yun ...
- mysql笔记(锁、事务、性能优化、压测结果)
Mysql 该笔记,主要根据kkb课程并结合网上资料和自己的理解而形成. 一.Mysql架构 1.1 逻辑架构 这是从网上copy过来的图.网上一些教程会把mysql也进行分层. 连接层:Connec ...
- es用canals怎么和mysql同步_MySQL压测--注意事项和FAQ
上次我们讲了TPCC的安装和一些使用方法,今天先不着急真正的做MySQL压力测试,先把我最近做压力测试的遇到的一些问题罗列出来,这样 后面做测试可以事半功倍. 1.注意事项 (1).提前规划好具体要测 ...
- mysql数据库压测_MySQL数据库压测有哪些注意事项和FAQ
MySQL数据库压测有哪些注意事项和FAQ 发布时间:2020-05-12 15:12:49 来源:亿速云 阅读:216 作者:三月 下面讲讲关于MySQL数据库压测有哪些注意事项和FAQ,文字的奥妙 ...
- mysql为什么要压测_mysql集群压测的详细介绍
本篇文章给大家带来的内容是关于mysql集群压测的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通 ...
最新文章
- 企业级闪存弥补数据经济价值短板
- 计算机辅助设计综合实践,计算机辅助设计毕业综合实践报告
- 求1-10000所有的素数
- springboot urlresource_Spring Boot上传文件+部署到Tomcat
- MRBS开源会议室预订系统安装
- 你怎么看当前中文语音识别技术在国内的应用?
- C语言从入门到精通——初阶6 指针
- 各行业的英语术语(绝对精华 1)
- 【每日经典】李嘉诚:赚钱可以无处不在、无时不有
- win中q-dir,everything,Windows Tabs,Clover各种效率神器(搜索,资源管理器,多标签)
- cpu排行计算机专业,cpu性能天梯图,详细教您电脑cpu排行榜
- gwo算法matlab源代码,智能优化算法应用:基于GWO优化BP神经网络 - 附代码
- Pub failed to delete entry because it was in use by anothe
- 还在收集资料?我这里有个github汇总
- Linux v4l2架构学习
- google pay(谷歌支付) 开发者账号配置的坑
- 设置firefox背景为黑夜模式
- openssh8.6默认不支持公钥ssh(gogs无法使用)
- Cocos2dx游戏开发笔记22:以仿《王者之剑》游戏源码为例,学习cocos2dx2.X到 3.0beta2 的升级(附源码)
- python写圣诞祝福语_有哪些高逼格的猪年春节祝福语?