加入收藏 | 设为首页 | 会员中心 | 我要投稿 台州站长网 (https://www.0576zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql+mycat压力检测一例

发布时间:2022-03-02 14:33:07 所属栏目:MySql教程 来源:互联网
导读:Mycat是业内知名mysql数据库中间件,其功能在各种mysql中间件中是比较丰富的.而mycat相关组件由java语言编写,部署方便.他的功能有:不透明代理,读写分离,负载均衡,数据分片等.而且因为其底层连接方式是用java的jdbc组件来连接数据库的,所以理论上是支持sql ser
       Mycat是业内知名mysql数据库中间件,其功能在各种mysql中间件中是比较丰富的.而mycat相关组件由java语言编写,部署方便.他的功能有:不透明代理,读写分离,负载均衡,数据分片等.而且因为其底层连接方式是用java的jdbc组件来连接数据库的,所以理论上是支持sql server,oracle,pgsql的,但是功能上主要集中在mysql上.
 
     优点:部署简单,功能强大,灵活性高,弥补mysql的一些功能缺失
 
     缺点:功能开发不算十分完善,需要注意踩坑
 
     如果按原理来说,mycat如果不做分片,纯粹只是代理的话,他所做的事情,其实更多的是数据转发,而这个转发能力,当然就是看他能有多强.
 
     既然理论上转发能力很强,那么是不是就可以忽略不计呢,当然不是,所以需要用直连mysql的测试数据来做对比.
  
简单说明拓扑关系:
  
第一步当然是安装好mysql,这里就不详细介绍怎么安装了,但是,my.cnf的参数是有些变化的,主要原因是要适应高并发压测环境,不然就被参数限制,然后程序退出.当然了,如果你想尽量模拟线上环境,那这些限制你得思考在内,更改就需要谨慎一些,我这里只是给出一例来参考.
 
#首先,就是要把系统的连接数和打开文件数搞起来
ulimit -SHn 65535
#想永久生效就要这样
echo "
* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535
" >> /etc/security/limits.conf
然后,更改mysql配置文件参数,其他buffer_pool什么的就不列出来了,请各自看情况设置,这里只说明涉及压测相关的参数.
 
#打开配置文件
vim /usr/local/mysql/my.cnf
#其他参数我们暂时忽略,只看这些关乎压测的参数
[mysqld]
#每台机都需要不一样的ID,主从环境下
server-id = 128157
#全局最大打开文件数,不可以超过系统设定的最大文件数,不然无效
open_files_limit = 65530
#innodb引擎限制一次打开表空间文件.ibd的文件描述符数量
innodb_open_files = 65530
#允许存到缓存里的表的句柄数量,压测自然要打开很多表,设大一点就对了,受系统limit和上面两个参数一起限制
table_open_cache = 65000
#实例可用最大连接数,必须设置足够大,不然连接数超出限制,测着报错不通就麻烦了,最少也比你实际要用到的多三分一
max_connections=30000
#最大每用户连接数,限制每个用户最大连接数,一定要比上面少一点
max_user_connections=20000
#最大数据包大小,做压测改大一点还是有必要
max_allowed_packet = 128M
#限制了同一时间在mysqld上所有session中prepared 语句的上限,平时不用理这个参数,但是压测就需要调大一点
max_prepared_stmt_count=100000
其他参数我就不一一列举,自己看情况来设置就行,然后,重启生效待命.
 
软件安装
 
先说说压测工具的选择问题,在MySQL协议上Mycat不兼容tpcc,所以放弃tpcc。然后sysbench2.0对mycat兼容也比较欠佳,不明原因压测失败次数多,所以也只能放弃.
 
最后选定sysbench0.4和0.5来使用,可以顺利测出结果,而且从压测的原理来说也比较客观.

(编辑:台州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读