mysql基准测试-程序员宅基地

技术标签: linux  mysql  centos  

sysbench 压测工具

安装

1 curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
在这里插入图片描述
2 yum -y install sysbench
在这里插入图片描述
3 版本验证: sysbench -version

参数介绍

在这里插入图片描述
–threads=N 要使用的线程数,客户端的并发连接数,默认 1 个 [1]
–events=N 最大允许的事件个数 [0]
–time=N 最大的总执行时间,测试执行的总时间,单位是秒,默认为10秒
–forced-shutdown=STRING 在 --time 时间限制到达后,强制关闭之前等待的秒数,默认“off”
–thread-stack-size=SIZE 每个线程的堆栈大小 [64K]
–rate=N 平均传输速率。0 则无限制 [0]
–report-interval=N 生成报告的时间间隔,以秒为单位定期报告具有指定间隔的中间统计信息 0表示禁用中间报告 [0]
–report-checkpoints=[LIST,…] 转储完整的统计信息并在指定的时间点重置所有计数器。参数是一个逗号分隔的值列表,表示从测试开始经过这个时间量时必须执行报告检查点(以秒为单位)。报告检查点默认关闭。 []
–debug[=on|off] 打印更多 debug 信息 [off]
–validate[=on|off] 尽可能执行验证检查 [off]
–help[=on|off] 显示帮助信息并退出 [off]
–version[=on|off] 显示版本信息并退出 [off]
–config-file=FILENAME 包含命令行选项的文件
–tx-rate=N 废弃,改用 --rate [0]
–max-requests=N 废弃,改用 --events [0]
–max-time=N 废弃,改用 --time [0]
–num-threads=N 废弃,改用 --threads [1]

#sysbench~cpu基准测试

1 cat /proc/cpuinfo
cpu cores : 1

2 cat /proc/cpuinfo
cpu cores : 2
此处需要不同品牌的cpu处理器进行对比,因为我实在虚拟机上测试的,所以几乎没区别,就没有上传图片

#sysbench的文件io基准测试

文件系统的io基准测试模拟了很多innodb的I/O特性
参数简介:
–file-block-size、
–file-io-mode、
–file-fsync-freq 、
–file-rw-ratio 。
对比两台服务器的io性能,需要跑相同的线程。
其中–file-test-mode的选项如下:
seqwr:顺序写入
seqrewr:顺序重写
seqrd:顺序读取
rndrd:随机读取
rndwr:随机写入
rndrw:混合随机读写

sysbench fileio --threads=1 --file-total-size=5G --file-test-mode=rndrw prepare
在这里插入图片描述
此图为memory,cpu资源相同环境下的混合随机读写速度(左:机械盘,右:固态盘)

sysbench fileio --threads=1 --file-total-size=5G --file-test-mode=rndrw prepare
在这里插入图片描述
sysbench fileio --threads=1 --file-total-size=5G cleanup

#sysbench~mysql基准测试

sysbench oltp_read_write --db-driver=mysql --time=300 --threads=1 --report-interval=3 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=mysql --mysql-password=pwd123 --mysql-db=test --tables=20 --table_size=10000 prepare

–db-driver=mysql:数据库的驱动类型
–time=300:访问的时间300秒
–threads=1:使用1个线程模拟并发访问
–report-interval=3:表示每隔3秒输出压测情况
–mysql-db=test:指定测试的库为test_db
–tables=20:在这个库中构建20个表
–table_size=10000:每个表中构建出 10万条测试数据
oltp_read_write:表示执行oltp 数据库的读写测试
prepare:准备阶段

/etc/my.cnf
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/data
lower_case_table_names = 1
skip-name-resolve = 1
character-set-server = utf8
innodb_buffer_pool_size = 2G
innodb_data_file_path = ibdata1:1G:autoextend
log_bin_trust_function_creators = 1

sysbench oltp_read_write --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=mysql --mysql-password=pwd123 --mysql-db=test --tables=20 --table_size=10000 --db-ps-mode=disable run > oltp_read_write.log

在这里插入图片描述
thds:10 : 表示当前有10个线程正在压测
tps:379.92 : 表示当前每秒执行了 379.92 个查询
qps:7827: 表示当前每秒可以执行 7827 个请求
(r/w/o: 5474/1566/785) : 表示在每秒 5474 个请求中,有 1566 个读请求,785 个写请求,32 个其他请求
lat (ms,95%): 36.89:表示 95% 的请求的延迟都在36.89 毫秒以下
err/s:1: 表示每秒1个请求失败
reconn/s: 0.00:表示发生了0次的网络重连

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/data
lower_case_table_names = 1
skip-name-resolve = 1
character-set-server = utf8
innodb_buffer_pool_size = 5G
innodb_data_file_path = ibdata1:1G:autoextend
log_bin_trust_function_creators = 1

sysbench oltp_read_write --db-driver=mysql --time=300 --threads=50 --report-interval=2 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=mysql --mysql-password=pwd123 --mysql-db=test --tables=20 --table_size=100000 --db-ps-mode=disable run > oltp_read_write.log
在这里插入图片描述

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/data
lower_case_table_names = 1
skip-name-resolve = 1
character-set-server = utf8
innodb_buffer_pool_size = 8G
innodb_data_file_path = ibdata1:1G:autoextend

sysbench
oltp_read_write --db-driver=mysql --time=300 --threads=30 --report-interval=2 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=mysql --mysql-password=pwd123 --mysql-db=test --tables=20 --table_size=100000 --db-ps-mode=disable run > oltp_read_write.log

在这里插入图片描述

总结

由上述压测结果得出,oltp场景下,cpu,memory,buffer cache增加会显著的影响tps,qps。但是对io的影响不是很明显,oltp场景对应的事务多,数据量小的业务。memory和db buffer增大,导致数据多缓存于buffer cache,所以数据从内存和磁盘间的交换较少。cpu处理频率高。如果是生还环境,需要分析具体sql,以及查阅查查profile和perforomance进行具体的性能分析

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39735909/article/details/127069429

智能推荐

openstack认证服务(认证组件)3_openstack 认证服务-程序员宅基地

文章浏览阅读1.9k次。Openstack认证服务(认证组件)3_openstack 认证服务

职场生存法则:一个外企女白领的日记...-程序员宅基地

文章浏览阅读4.5k次。第11节:人与人的相处(1)   2006-6-7 8∶40∶00  人与人的相处  一、有后台的下属。  我遇见过,也处理得很好。你不能得罪他背后的人,那么就通过他去利用他背后的人。比如说他是老板的亲戚,碰见别的部门有什么搞不定的人,你美言他几句叫他去搞,成功了自然是别人给老板面子,失败了你也可以多多积累他的错误,日后真到不得不踢人的时候也派得上..._外企重视documentation

iOS踩坑App Store Connect Operation Error_sdk version issue. this app was built with the ios-程序员宅基地

文章浏览阅读3.4k次。这个应用程序是用iOS 15.5 SDK构建的。从2023年4月开始,所有提交到应用商店的iOS应用程序都必须使用iOS 16.1 SDK或更高版本构建,包括在Xcode 14.1或更高版本中。目前iOS 开发工具Xcode 版本号是13.4.1 ,系统无法升级,也会导致Xcode无法升级。1、苹果官方提示: 2023年4月开始,开发必须使用 Xcode 14.1 以上的版本,2、目前此电脑无法在升级, 2023年4月开始 ,此电脑就无法正常开发使用,应用程序商店连接操作错误。_sdk version issue. this app was built with the ios 15.5 sdk. all ios and ipa

接单平台汇总_excel接单平台-程序员宅基地

文章浏览阅读335次。接单平台汇总程序员客栈码市开源众包智慧外包实现网猿急送人人开发网开发邦点鸭网快码网英选网外包大师我爱方案网智筹网自由智客接单注意事项:1、没有第三方担保的个人单子,尽量少接2、无需求文档、没有具体要求的不接3、没有预付的不做,尽量用442的分步步骤方式4、没有金刚钻,别揽瓷器活5、急单勿接6、任何不付定金的单子都是耍赖7、不计得失,不怕吃亏..._excel接单平台

CPU如何跑分_cpu跑分教程-程序员宅基地

文章浏览阅读1k次。烤CPU的时候,占用率满了,CPU频率的槽有一些还是空的…… 有没有能跑分的软件?好像有的【聊电Jing】你的CPU性能如何? 来跑个分测试看看吧! | Cinebench R15 & R20 使用教学_哔哩哔哩_bilibili 好像还是免费的Cinebench - Maxon Cinebench - Microsoft Store Apps 频率为什么就是超不过3Ghz? 多核,100度了? 可能频率最高只能这么高,再高可能就烧掉了…… 多核结果.................._cpu跑分教程

最大流问题的Ford-Fulkerson解法_ford capacity 详解-程序员宅基地

文章浏览阅读498次。这是一种方法,而不是算法,因为它包含具有不同运行时间的几种实现。该方法依赖于三种重要思想:残留网络,增广路径和割我们先简单介绍下Ford-Fulkerson方法的基本思想。首先需要了解的是Ford-Fulkerson是一种迭代的方法。开始时,对所有的u,v属于V,f(u,v)=0(这里f(u,v)代表u到v的边当前流量),即初始状态时流的值为0。在每次迭代中,可以通过寻找一个“增广路径”来增加_ford capacity 详解

随便推点

调用百度地图画圈并标出属于圈内的点位信息_bmap.circle-程序员宅基地

文章浏览阅读1.3k次。直接上代码:fanweiss(){//画圈varaaa=this.gaojingDatadebuggervarmap=newBMap.Map("ydmap");//创建Map实例varmPoint=newBMap.Point(this.gaojingData.longitude,this.gaojingData.latitude);//中心点map.setMapStyle({style:"midni..._bmap.circle

VisualVM 插件地址_visualvm 插件中心地址-程序员宅基地

文章浏览阅读1.4k次。VisualVM原插件地址是oracle的打不开,已经移到github上了,具体如下:介绍:https://visualvm.github.io/plugins.html下载地址:https://visualvm.github.io/pluginscenters.html 选择对应JDK版本下载即可! 注意事项:在使用Visual VM进行heapdump分析的时候,发..._visualvm 插件中心地址

understand 代码解析工具的使用_understand代码-程序员宅基地

文章浏览阅读8.8k次,点赞15次,收藏80次。understand 常用操作文章目录understand 常用操作简单介绍软件下载常用基本操作新建工程并添加现有文件如何找到自己当前想要去编辑的文件?如何在当前文件中找到你要编辑的函数?如何跳转到定义?查看当前文件的函数列表如何查看函数都被谁调用了?查看函数的调用逻辑如何查找如何找到函数的被调用图除此之外可以分析出代码的各种结构文本的编辑格式设置双屏一边看代码,一遍看代码地图简单介绍understand对分析代码有非常强的能力,完全可以代替sourceinsight,并且可以在linux上mac上使_understand代码

Oracle 闪回(flashback)数据库到指定时间点_数据库 oracle时间戳闪回-程序员宅基地

文章浏览阅读4.1k次。如果是update,delete类误操作且已经commit,优先考虑使用flashback query进行恢复。select * from test1 as of timestamp to_timestamp('2018-01-13 16:59:29','YYYY-MM-DD hh24:mi:ss');如果是drop或truncate table,则不能使用闪回查询,需要使用备库进行整库..._数据库 oracle时间戳闪回

[bigdata-124] docker+django2.0 构建web服务_docker django print-程序员宅基地

文章浏览阅读660次。在本地运行django1.python3.42.安装django,安装特定版本pip3 install django==2.03.测试安装python3import djangoprint(django.get_version())4.django使用创建一个新目录test_djangopython -m django --version_docker django print

话题的发布与订阅_话题订阅频率和发布频率一样-程序员宅基地

文章浏览阅读2.6k次,点赞3次,收藏11次。Ros话题发布与订阅节点的编写(C++)_话题订阅频率和发布频率一样

推荐文章

热门文章

相关标签