返回顶部
首页 > 资讯 > 数据库 >如何实现sysbench压测MyCAT的shell脚本
  • 677
分享到

如何实现sysbench压测MyCAT的shell脚本

2024-04-02 19:04:59 677人浏览 薄情痞子
摘要

小编给大家分享一下如何实现sysbench压测MyCAT的shell脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

小编给大家分享一下如何实现sysbench压测MyCAT的shell脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

中间件MyCAT自己之前也简单测试过,总结过。最近做分布式测试,我大体分了三个阶段:

一.环境部署,MHA和MyCAT的融合,读写分离

二.sharding策略和分库分表的压力测试

三.结合业务做分库分表的模拟测试

尤其是分库分表的测试方面,目前还是存在一些需要确认的点。

我在测试之前所想,做这个分布式测试的意义是什么?是想通过测试来论证什么,希望达到什么目标,是否稳定,功能是否满足需求,这些都是需要反复明确的地方。

当然,这些我没有留太多的时间下来,我希望是速战速决,但是测试质量还是需要基本保证,那就是测试的场景基本要全面一些。

测试工具的选择上,我目前先选择了sysbench,原生支持,操作起来相对容易控制,尤其是支持的场景很丰富,在一些流水型数据的业务中,我如果侧重测试密集型插入的场景,就可以很轻松的使用insert的模板来测试。

MyCAT的部署上本身是很简单的,无非是一些基本的环境配置。如果是一个新手,从安装Java到部署MyCAT,如果全程跟进,基本两个小时都能够拿下来。部署安装参见之前的一篇文章Mycat读写分离配置实践

而sharding策略的配置还是需要花一些时间的,首先是你得理解它的sharding逻辑。大体明白之后,事情就很简单了。

测试的场景,我是这样来规划的,首先在3个物理机上面部署了Mysql服务,每个服务器是一个sharding节点,然后有另外一台服务器部署了MyCAT,这样就是一个简单的分布式sharding环境。

要压测基本的性能情况,有几种测试的方法,假设测试的表为:sharding_table,存在的数据库为db1,db2,db3,db4

测试的场景就会很丰富.

场景1:

如何实现sysbench压测MyCAT的shell脚本

场景2:

在之前的基础上进行扩展,按照这个进度,基本就是3N的方式,所以就会有3,6,9,12这样的一些分布方式,这样的好处就是前期规划了,后期如果出现瓶颈,可以很方便的拆分。

如何实现sysbench压测MyCAT的shell脚本

要完成这些工作,每个场景测试偷工减料测试几分钟也是不行的,每个场景最起码得1个小时,按照这个要求,至少得20个小时,人是铁饭是钢,我不能一直守在那里。所以就在下班前写了个脚本,让它慢慢跑吧,明天上班收数。

我前期做了快速迭代,把每个场景都大体跑了下,得到了一个基本的数据分布,然后细化到每个场景一个小时来收到相对完整的数据情况。

脚本如下,我配置了10个sbtest[N]的表,如果是做分片,3个服务器节点切分成12个sharding分片,那就是120个表。测试的场景我是分为不同的sharding分片,不同的线程数。需要提前配置下rules.xml和schema.xml我是准备了好几份这个配置文件,到时候直接替换就行。

#!/bin/bash

time= 3600

sleep_time= 60

function clean_data

{

echo $time

echo ${sleep_time}

mysql -umycat_user -pmycat_user -P8066 -h227 .0.0.1 <<EOF

use sbtestdb1

delete from sbtest1;

delete from sbtest2;

delete from sbtest3;

delete from sbtest4;

delete from sbtest5;

delete from sbtest6;

delete from sbtest7;

delete from sbtest8;

delete from sbtest9;

delete from sbtest10;

EOF

sleep ${sleep_time}

}

function sysbench_test

{

clean_data

shard_no=$ 1

thread_no=$ 2

/usr/bin/sysbench /usr/share/sysbench/oltp_insert.lua --db-driver=mysql

--mysql_storage_engine=innodb --mysql-user=mycat_user

--mysql-passWord=xxxx --mysql-port= 8066 --mysql-host= 127.0.0.1

--mysql-db=sbtestdb1 --auto_inc= 1 --tables= 10 --table-size= 50000000

--threads=${thread_no} --time=$time --report-interval= 5

run |tee sysbench_${thread_no}_sharding_${shard_no}.log

sleep ${sleep_time}

}

function change_sharding

{

shard_no=$ 1

date

echo 'SHARDING_NO:'${shard_no}

mv /usr/local/mycat/conf/schema.xml /usr/local/mycat/conf/schema.xml.tmp >/dev/null

cp /usr/local/mycat/conf/schema.xml.sharding_${shard_no} /usr/local/mycat/conf/schema.xml >/dev/null

/usr/local/mycat/bin/mycat restart >/dev/null

sleep ${sleep_time}

}

change_sharding 12

sysbench_test 12 16

sysbench_test 12 32

sysbench_test 12 64

sysbench_test 12 98

sysbench_test 12 128

change_sharding 9

sysbench_test 9 16

sysbench_test 9 32

sysbench_test 9 64

sysbench_test 9 98

sysbench_test 9 128

change_sharding 6

sysbench_test 6 16

sysbench_test 6 32

sysbench_test 6 64

sysbench_test 6 98

sysbench_test 6 128

change_sharding 3

sysbench_test 3 16

sysbench_test 3 32

sysbench_test 3 64

sysbench_test 3 98

sysbench_test 3 128

以上是“如何实现sysbench压测MyCAT的shell脚本”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: 如何实现sysbench压测MyCAT的shell脚本

本文链接: https://lsjlt.com/news/62498.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何实现sysbench压测MyCAT的shell脚本
    小编给大家分享一下如何实现sysbench压测MyCAT的shell脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • pgbench如何实现压力测试脚本
    这篇文章主要介绍pgbench如何实现压力测试脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!创建测试表, 并填充数据  5000W 笔记录. pgbench&nb...
    99+
    2023-06-04
  • 如何实现并发数据库压力测试的shell脚本代码
    这篇文章给大家分享的是有关如何实现并发数据库压力测试的shell脚本代码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码如下:#!/bin/bash#******************************...
    99+
    2023-06-09
  • Linux Shell脚本实现检测tomcat
    Linux Shell脚本检测tomcat并自动重启 后台运行命令 sh xxx.sh & 查看后台任务:jobs 召唤到前台:fg jobs编号 可以删掉while循环的代码放到crontab里面定时...
    99+
    2022-06-04
    脚本 Linux Shell
  • 如何使用sysbench对MySQL实施压力测试
    下面一起来了解下如何使用sysbench对MySQL实施压力测试,相信大家看完肯定会受益匪浅,文字在精不在多,希望如何使用sysbench对MySQL实施压力测试这篇短内容是你想要的。1.背景出自perco...
    99+
    2024-04-02
  • 如何实现Shell菜单脚本
    这篇文章将为大家详细讲解有关如何实现Shell菜单脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。编写的Shell菜单脚本,傻瓜式的人机交互,人人都可以操作linux。#!/bin/sh#Shell菜单...
    99+
    2023-06-09
  • Shell脚本注释如何实现
    这篇文章主要介绍了Shell脚本注释如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Shell脚本注释如何实现文章都会有所收获,下面我们一起来看看吧。单行注释直接在行最前端加上符号 # 即可。具体用法如下...
    99+
    2023-07-05
  • Shell脚本解压rpm软件包的实现方法
    这篇文章主要讲解了“Shell脚本解压rpm软件包的实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本解压rpm软件包的实现方法”吧!有时候需要从RPM包中提取文件,而又没...
    99+
    2023-06-09
  • Shell脚本如何实现文本处理
    这篇文章给大家分享的是有关Shell脚本如何实现文本处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。4.1 排序文本4.1.1 行的排序未提供命令行选项时,整个记录会根据当前locale所定义的次序排序。在传统...
    99+
    2023-06-09
  • 并发数据库压力测试的shell脚本代码
    #!/bin/bash#********************************##并发后台运行fun ##for wanggy 2012-01-25 ...
    99+
    2022-06-04
    脚本 代码 数据库
  • Shell脚本中如何实现循环
    这篇文章主要介绍了Shell脚本中如何实现循环,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。for 循环Shell 脚本里最简单的循环当属 for 循环,有编程基础的朋友应该...
    99+
    2023-06-16
  • 如何实现Linux Shell脚本调试
    这篇文章主要讲解了“如何实现Linux Shell脚本调试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现Linux Shell脚本调试”吧!一、调试脚本调试功能是每一种编程语言都应该...
    99+
    2023-06-09
  • shell脚本实现实时检测文件变更
    使用python做web开发,现在流行使用uwsgi调用python程序,但是使用uwsgi一段时间发现有一个弊端,就是每次更改源代码后必须重启uwsgi才能生效,包括更改模板文件也是,我是个懒人,再经过一...
    99+
    2022-06-04
    脚本 实时 文件
  • Shell脚本中如何实现DNS主从同步脚本
    这篇文章给大家分享的是有关Shell脚本中如何实现DNS主从同步脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。DNS主从同步脚本实例PS:两个服务器起好后最好两个服务都重启一下主服务器配置#!/bin/bas...
    99+
    2023-06-09
  • mysql中如何实现自动化脚本安装的shell脚本
    这篇文章将为大家详细讲解有关mysql中如何实现自动化脚本安装的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。脚本处理逻辑流程图    ...
    99+
    2024-04-02
  • 如何优化shell性能测试脚本
    如何优化shell性能测试脚本?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。脚本名称:authTest.sh#!/bin/bashfor ((i=0;i<=10...
    99+
    2023-06-09
  • MySQL压力测试中如何定制sysbench的Lua模板
    本篇内容介绍了“MySQL压力测试中如何定制sysbench的Lua模板”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2024-04-02
  • shell脚本如何实现获取图片
    这篇文章主要介绍了shell脚本如何实现获取图片,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。shell脚本实现获取图片。#!/usr/bin/bash. /etc/init...
    99+
    2023-06-04
  • Shell脚本中如何实现更新PHP5
    这篇文章主要介绍了Shell脚本中如何实现更新PHP5,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。我很迷恋 Shell,很喜欢看着字符在黑色的 Console 界面中跳跃着...
    99+
    2023-06-09
  • 如何用shell脚本实现linux系统文件完整性检测
    这篇文章主要介绍“如何用shell脚本实现linux系统文件完整性检测”,在日常操作中,相信很多人在如何用shell脚本实现linux系统文件完整性检测问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用sh...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作