Linux运维知识之使用sysbench测试mariadb性能的经验总结
小标 2019-06-20 来源 : 阅读 1196 评论 0

摘要:本文主要向大家介绍了Linux运维知识之使用sysbench测试mariadb性能的经验总结,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

本文主要向大家介绍了Linux运维知识之使用sysbench测试mariadb性能的经验总结,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

Linux运维知识之使用sysbench测试mariadb性能的经验总结

过程中也搜了很多教程, 所以重复的就不多说, 主要说一下教程中没看到的或不够清楚的

1. 安装

安装可以用yum也可以自己下下来编译, 我两种都尝试了一下, 自己编译注意看情况指定–with-mysql-includes和 –with-mysql-libs, 比如:

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

如果是上面这种方式编译安装的, 将会只带mysql驱动, 跑测试的时候就不用指定 –db-driver

如果是yum安装的, 默认除了mysql还会带一个PostgreSQL的驱动, 就得指定 –db-driver=mysql, 否则会报错提示没指定驱动啥的

带了哪些驱动可以从sysbench –help里看到

2. 跑测试

勤看帮助。

sysbench –help的最上面是通用选项, 主要用到的比如线程数(–threads), 限制跑多久(–time), 跑多少次事件(–events)
sysbench –help的最后, 可以看到自带的测试方式有这些, 这就是–test=后面可以带的参数

Compiled-in tests:
  fileio - File I/O test
  cpu - CPU performance test
  memory - Memory functions speed test
  threads - Threads subsystem performance test
  mutex - Mutex performance test

基础用法(help, prepare, run, cleanup)参考github页面

想测数据库的, 一开始可能会有点懵逼, 因为这里没看到测试数据库的参数, 网上教程大都是旧的, 按那些填也没用, 而github主页上好像也没找到说明?

我也蛋疼了好一会儿, –help和github主页看了无数遍, 终于才在github主页最上面瞄到这个:

Linux运维知识之使用sysbench测试mariadb性能的经验总结

我tm也是醉了, 这里一般都当作介绍区域看一眼就跳过了, 谁会想到唯一能找到使用方式的线索在这里???

所以搜一下这个oltp_.lua吧, find / -name oltp_.lua, 会列出一堆lua脚本, 选择你要测的直接复制完整路径作为参数传给–test, 然后其他一堆参数该填的填, 就可以跑起来了

要注意的主要是这个参数–rand-type=, 这里官网给了可选的范围: {uniform, gaussian, special, pareto, zipfian}, 其他几个还能勉强看出是一些数学分布, uniform和special完全不知道是干什么的, uniform只知道有个统一的意思, 并不能确定, 搜也搜不到, 于是提了个issue问了一下:

Linux运维知识之使用sysbench测试mariadb性能的经验总结

好吧原来uniform就是离散均匀分布, 简单来说就是普通随机, special如作者所说,是不科学的,但它又是默认值……(还能说啥,前面的白测了_(:з」∠)
(简单对比了一下uniform和special, special测出来的性能大致是uniform的1.7倍)

3. 各lua脚本的区别

虽然没写过lua, 不过打开脚本看看基本能看出来, 我只测了下面三个(下列为后缀), 它们分别干的事是:

•  insert:, 即为纯insert
•  read_write 包括:  select (range, sum, order, distinct) ,  update,  update(non-index),  delete
•  read_only: select (range, sum, order, distinct)

--range_selects 参数决定select是否是仅单点 (只使用where=,而不使用上面括号中条件)

4. 其他

注意帮助最后一句写的See ‘sysbenchhelp’ for a list of options for each test.
所以要看参数的话就是 sysbench xx.lua help, 可以看到参数用来设置测试用的表数量, 表大小之类的

自己撸了个python脚本测insert(主要是为了测别的), 用了sqlalchemy, 性能和测试脚本差距比较大…

我是三台虚拟机做了galera分布式集群的, 实测发现单节点跑测试时其他节点cpu也会飚起来, 所以就不贴结果了, 可能参考性不够强.

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程