百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

分享3个Sysbench性能压测脚本及多并发压测过程

gudong366 2025-03-09 16:55 8 浏览

概述

sysbench是基于LuaJIT的可以脚本化多线程基准。 它是一个模块化的、跨平台、多线程基准测试工具,最常用于数据库基准测试,但也可以用于创建不涉及数据库服务器的任意复杂工作负载。

目前sysbench主要支持 MySQL,pgsql,oracle 这3种数据库。

今天主要分享一下sysbench常用的一些脚本以及sysbench压测。


一、压测环境

生产环境:

MySQL服务器IP地址:xx.xx.xx.xx

操作系统:CentOS Linux release 7.3.1611 (Core)

CPU:4核

内存:8G

硬盘:普通SAS硬盘

基线测试工具:sysbench


二、相关脚本

1、采集tps的脚本(analyze_tps.sh)

#!/bin/bash
cat $1|awk '/10s ]/,/1800s ]/{print $0}'|awk -F '[' '{print $2}'|awk -F ']' '{print $1,$2}'|awk '{print $1,$5}'|awk -F ',' '{print $1}'|awk -F 's' '{print $1 $2}' > $2

脚本的'/10s]/,/1800s] 这2个参数是需要根据实际情况进行更改的,我sysbench采取的是10s计数一次,累计运行1800s,所以统计是从10s开始直到1800s结束;

其中tps的值在过滤之后位于$5的位置,可以直接取出

2、采集qps的脚本(analyze_qps.sh)

#!/bin/bash
cat $1|awk '/10s ]/,/1800s ]/{print $0}'|awk -F '[' '{print $2}'|awk -F ']' '{print $1,$2}'|awk '{print $1,$7+$9}'|awk -F ',' '{print $1}'|awk -F 's' '{print $1 $2}' > $2

3、绘图脚本(sysbench-graph.sh)

#!/bin/bash
gnuplot << EOP
set style line 1 lt 1 lw 3
set style line 2 lt 2 lw 3
set style line 3 lt 3 lw 3
set style line 4 lt 4 lw 3
set style line 5 lt 5 lw 3
set style line 6 lt 6 lw 3
set style line 7 lt 7 lw 3
set terminal png size 960,480
set grid x y
set xlabel "Time(sec)"
set ylabel "TPS"
set output "$2"
plot "$1" using 1:2 title "threads=2" ls 1 with lines,\
 "$1" using 3:4 title "threads=100" ls 2 with lines,\
 "$1" using 5:6 title "threads=200" ls 3 with lines,\
 "$1" using 7:8 title "threads=300" ls 4 with lines,\
 "$1" using 9:10 title "threads=500" ls 5 with lines,\
 "$1" using 11:12 title "threads=800" ls 6 with lines axes x1y1 
EOP


三、sysbench压测预演

1、到被测试的库里建库,建用户,授权

set global validate_password_policy=0;
##因为lua脚本里面这里设置的就是sbtest库,库名需要与脚本里的内容保持一致
create database sbtest; 
grant all privileges on sbtest.* to tpcc@'%' identified by 'tpcc@1234';
flush privileges;

2、会产生报错的操作(将oltp.lua中的mysiam修改成innodb后,会找不到表)--不执行

cd /usr/local/sysbench/share/sysbench/tests/include/oltp_legacy
cp oltp.lua oltp_innodb.lua
sed -i 's/myisam/innodb/g' /usr/local/sysbench/share/sysbench/tests/include/oltp_legacy/oltp_innodb.lua

3、测试多表的压测

###################################执行prepare##########################################
--test=/usr/local/sysbench/share/sysbench/tests/include/oltp_legacy/oltp.lua //表示调用oltp.lua 脚本进行 oltp 模式测试
--oltp_tables_count=20 //20张表
--oltp-table-size=1000000 //每张表100万数据
#######################################################################################
sysbench --mysql-host=172.26.151.69 --mysql-port=3306 --mysql-user=tpcc --mysql-password=tpcc@1234 \
--test=/usr/local/sysbench/share/sysbench/tests/include/oltp_legacy/oltp.lua --oltp_tables_count=20 \
--oltp-table-size=1000000 --rand-init=on prepare

###################################执行run###############################################
--num-threads=4     //4个并发连接
--max-time=30      //测试时间为30s
--report-interval=5  //报告打印周期为5s
--oltp-read-only=off  //非只读操作测试
--max-requests=0 //最大执行次数这里不做限制,只由max-time进行限制
#########################################################################################
sysbench --mysql-host=172.26.151.69 --mysql-port=3306 --mysql-user=tpcc --mysql-password=tpcc@1234 \
--test=/usr/local/sysbench/share/sysbench/tests/include/oltp_legacy/oltp.lua --oltp_tables_count=20 \
--oltp-table-size=1000000 --num-threads=4 --oltp-read-only=off --report-interval=5 --rand-type=uniform \
--max-time=30 --max-requests=0 --percentile=99 run

###################################执行清除##################################################
★重点关注:总的事务数,每秒事务数TPS,QPS,时间统计信息(最大、最小、平均、99%以上语句响应时间)★
############################################################################################
sysbench --mysql-host=172.26.151.69 --mysql-port=3306 --mysql-user=tpcc --mysql-password=tpcc@1234 \
--mysql-db=sbtest --oltp-tables-count=20 --oltp-table-size=1000000 --num-threads=16 --max-requests=0 \
--max-time=30 --report-interval=1 --test=/usr/local/sysbench/share/sysbench/tests/include/oltp_legacy/oltp.lua cleanup

说明:

read: 154280     //读总数,select语句

write: 44080     //写总数,insert、delete、update语句

other: 22040      //其它语句,如commit等

total: 220400 //总的执行语句数

transactions: 11020 (367.14 per sec.)  //总的事务数(★每秒处理事物数:TPS★)

queries:: 220400 (7342.85 per sec.)   //读写请求次数(★每秒的读写次数:QPS★)

total time: 30.0133s        //总时间

total number of events: 11020    //★事务总数★

min: 6.97ms    //最小延迟时间

avg: 10.89ms    //平均延迟时间

max: 48.47ms    //最大延迟时间

99th percentile:: 21.89ms  //99%语句执行时间

Threads fairness:  //线程公平性

events (avg/stddev): 2755.0000/91.59 //平均每个线程完成envet的次数,后一个值是标准差

execution time (avg/stddev): 29.9929/0.00 //平均每个线程平均耗时,后一个值是标准差


上面三个脚本后面有大用,建议大家收藏一下。觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

相关推荐

U盘文件被删怎么简单恢复(u盘里的文件被误删了怎么找回)

现在这个社会不是靠关系靠路子,主要还是靠实力。刘强在机关工作,人长得帅气,工作能力又强。唯独一样不好,脾气太大,动不动就发火,因为小事常和同事发生口角。一次他火大的差点把办公桌给掀翻了,领导见他野蛮的...

不小心删除了一些文件?9 个最佳免费硬盘恢复软件

恢复您曾经无意或意外删除的所有文件和数据。您是否曾经错误地删除了一个对您的工作至关重要并导致您丢失所有进度的文件?我们为您提供了一些最好的免费硬盘恢复软件,以帮助您恢复意外删除的文件,以解决您的文件删...

Studio 中文版:数据救援神器,误删 / 分区损坏 / RAID 恢复一键找回

Studio中文版:数据救援神器,误删/分区损坏/RAID恢复一键找回当文件意外删除、分区损坏,或RAID阵列崩溃时,一款可靠的数据恢复工具往往能挽回关键损失。R-Studio中文版...

你值得拥有的11款Linux数据恢复工具

如果你使用的是Linux操作系统,那么你一定想知道一旦硬盘崩溃的话又该如何保存和恢复数据。其实,现在有很多Linux数据恢复工具可以让我们摆脱数据安全的困扰。小编已经为各位准备好了一些最好的Linux...

误删文件内容怎么恢复(误删文件内容怎么恢复回来)

  在日常使用电脑的过程中,误删文件的情况时有发生。无论是由于操作失误还是病毒攻击,误删文件都会给我们带来不小的困扰。幸运的是,随着技术的发展,误删文件恢复已不再是难题。本文将介绍几款国内外知名的误删...

u盘如何恢复删除的文件?推荐5款u盘数据恢复软件!

在日常生活与工作中,U盘作为便捷的数据存储载体,频繁用于传输和保存各类重要文件。然而,误删文件的情况却时有发生,无论是珍贵的照片、重要的工作文档,还是精心制作的视频,一旦删除,都可能带来不小的麻烦。...

怎么恢复删除的数据?5种有效的数据恢复方法汇总!

在数字化办公与生活的时代,电脑里的每一份数据都承载着重要信息。然而,一个误操作就可能导致数据被删除,无论是尚未保存的重要文档,还是珍藏多年的照片,都可能瞬间“消失”。但其实,数据删除并不意味着永久丢...

u盘删除文件怎么找回?5个数据恢复工具汇总,助你巧妙恢复数据!

在日常使用U盘的过程中,误删文件的情况时有发生,重要的工作文档、珍贵的照片视频一旦消失,难免让人焦急万分。别担心,只要选对数据恢复工具,被删除的数据仍有找回的可能。下面就为你汇总5款实用的数据...

Linux下恢复误删文件:思路+实践(linux删除如何恢复)

周五篮球群里有人问误删文件了怎么恢复,得知是ext4文件系统之后我推荐了ext4magic这个工具,然后又有人提到了xfs的话怎么办,正好前几天看到DaveChinner在邮件列表里提到了这个问题,...

苹果放大招!不用虚拟机了,Mac直接跑Linux容器,开发者效率翻倍

苹果这次真给开发者送福利了!今天凌晨(6月10日),苹果在官宣的Containerization框架直接炸了技术圈——Mac现在能原生运行Linux容器镜像了!这可不是虚拟机那种“套娃”方案,而是基...

7 款老牌经典软件,值得收藏(经典老歌软件)

Calibrehttps://calibre-ebook.com/Calibre是一个电脑电子书管理软件。肯定有人说了,电子书还要管理?那当然了。它的功能更强大的让你想象不到,首先它可以导入PDF,...

神仙级的免费开源电子书阅读器,还支持听书功能

神仙级的免费开源电子书阅读器,还支持听书功能,极空间部署『KoodoReader』哈喽小伙伴们好,我是Stark-C~前段时间不是给大家分享的电子书管理工具『TaleBook』嘛~,然后就有粉丝私信...

如何在Ubuntu系统中重置root密码(ubuntu忘记密码重置root密码命令)

很多人有个问题,就是喜欢把密码设置得很长很复杂,结果谁也没防住,却成功防住了自己ヽ(.ˇдˇ;)ノ对于现代人,特别是年轻人,都有过忘记密码的经历吧。在这篇文章中,我们来了解如何在Ubuntu1...

5款功能强大的PDF阅读器,让PDF阅读更轻松

分享5款功能强大的PDF阅读器,拥有丰富的PDF阅读工具,支持PDF文档划线、笔记、标记等操作,让PDF阅读更轻松!1.嗨动PDF编辑器一款实用的PDF处理软件,不仅可以阅读PDF文档,还能直接编辑、...

上班摸鱼利器! 免费好用的电子书阅读器,NAS轻松部署Koodo Reader

哈喽,大家好我是生活爱好者。笔者也是一名小说爱好者,平时用手机用某信读书,会员也开了,在家看体验也不错,但是上班的时候,在工作快速完成之后,想摸个鱼用手机就不太方便啦,作为爱折腾的人,必须要工作认真,...