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

智能推荐

http隧道 java_使用java语言实现http隧道技术-程序员宅基地

文章浏览阅读119次。该楼层疑似违规已被系统折叠隐藏此楼查看此楼/***Getaparametervalue**@paramkeyString*@paramdefString*@returnString*/publicStringgetParameter(Stringkey,Stringdef){returnisStandalone?System.getProperty(ke..._java http隧道

Keepalived高可用+邮件告警_keepalived sendmail-程序员宅基地

文章浏览阅读913次。IP主机名备注192.168.117.14keepalived-master主节点192.168.117.15keepalived-slaver备节点192.168.117.100VIP1.主备节点均安装keepalived# yum install -y keepalived httpd2.主备节点均修改keepalived日志存放路径..._keepalived sendmail

SPFILE 错误导致数据库无法启动(ORA-01565)_ora01565 ora27046-程序员宅基地

文章浏览阅读469次。--==========================================--SPFILE错误导致数据库无法启动(ORA-01565)--========================================== SPFILE错误导致数据库无法启动 SQL> startup ORA-01078: failurein proce_ora01565 ora27046

功能测试基础知识(1)-程序员宅基地

文章浏览阅读6.1k次,点赞2次,收藏54次。功能测试基础知识总结_功能测试

postgresql 中文排序_pg中文排序-程序员宅基地

文章浏览阅读3.2k次,点赞3次,收藏2次。pg 中文首字母排序_pg中文排序

[Mysql] CONVERT函数_mysql convert-程序员宅基地

文章浏览阅读3.1w次,点赞23次,收藏109次。本文主要讲解CONVERT函数_mysql convert

随便推点

HTML5与微信开发(2)-视频播放事件及API属性_微信开发者工具视频快进-程序员宅基地

文章浏览阅读8.6k次,点赞2次,收藏2次。HTML5 的视频播放事件想必大家已经期待很久了吧,在HTML4.1、4.0之前我们如果在网页上播放视频无外乎两种方法: 第一种:安装FLASH插件或者微软发布的插件 第二种:在本地安装播放器,在线播放组件之类的 因为并不是所有的浏览器都安装了FLASH插件,就算安装也不一定所有的都能安装成功。像苹果系统就是默认禁用FLASH的,安卓虽然一开始的时候支持FLASH,但是在安卓4.0以后也开始不_微信开发者工具视频快进

JedisConnectionException Connection Reset_jedisconnectionexception: java.net.socketexception-程序员宅基地

文章浏览阅读5.4k次,点赞3次,收藏4次。在使用redis的过程常见错误总结1.JedisConnectionException Connection Reset参考这边文章:Connection reset原因分析和解决方案https://blog.csdn.net/cwclw/article/details/527971311.1问题描述Exception in thread "main" redis.clients...._jedisconnectionexception: java.net.socketexception: connection reset

Lua5.3版GC机制理解_lua5.3 gc-程序员宅基地

文章浏览阅读8.3k次,点赞8次,收藏42次。目录1.Lua垃圾回收算法原理简述2.Lua垃圾回收中的三种颜色3.Lua垃圾回收详细过程4.步骤源码详解4.1新建对象阶段4.2触发条件4.3 GC函数状态机4.4标记阶段4.5清除阶段5.总结参考资料lua垃圾回收(Garbage Collect)是lua中一个比较重要的部分。由于lua源码版本变迁,目前大多数有关这个方面的文章都还是基于lua5.1版本,有一定的滞后性。因此本文通过参考当前..._lua5.3 gc

手机能打开的表白代码_能远程打开,各种手机电脑进行监控操作,最新黑科技...-程序员宅基地

文章浏览阅读511次。最近家中的潮人,老妈闲着没事干,开始学玩电脑,引起他的各种好奇心。如看看新闻,上上微信或做做其他的事情。但意料之中的是电脑上会莫名出现各种问题?不翼而飞的图标?照片又不见了?文件被删了,卡机或者黑屏,无声音了,等等问题。常常让她束手无策,求助于我,可惜在电话中说不清,往往只能苦等我回家后才能解决,那种开心乐趣一下子消失了。想想,这样也不是办法啊, 于是,我潜心寻找了两款优秀的远程控制软件。两款软件...

成功Ubuntu18.04 ROS melodic安装Cartograhper+Ceres1.13.0,以及错误总结_ros18.04 安装ca-程序员宅基地

文章浏览阅读1.8k次。二.初始化工作空间三.设置下载地址四.下载功能包此处可能会报错,请看:rosdep update遇到ERROR: error loading sources list: The read operation timed out问题_DD᭄ꦿng的博客-程序员宅基地接下来一次安装所有功能包,注意对应ROS版本 五.编译功能包isolated:单独编译各个功能包,每个功能包之间不产生依赖。编译过程时间比较长,可能需要几分钟时间。此处可能会报错:缺少absl依赖包_ros18.04 安装ca

Harbor2.2.1配置(trivy扫描器、镜像签名)_init error: db error: failed to download vulnerabi-程序员宅基地

文章浏览阅读4.1k次,点赞3次,收藏7次。Haobor2.2.1配置(trivy扫描器、镜像签名)docker-compose下载https://github.com/docker/compose/releases安装cp docker-compose /usr/local/binchmod +x /usr/local/bin/docker-composeharbor下载https://github.com/goharbor/harbor/releases解压tar xf xxx.tgx配置harbor根下建立:mkd_init error: db error: failed to download vulnerability db: database download

推荐文章

热门文章

相关标签