MYSQL innodb cluster 到底会不会因为网络影响性能

最近某篇关于mysql 由于部分网络问题,造成的性能急速下降的文字(英文)挺火的,看了看实验并不是太难,这里就按照那篇文字来做一下,顺便验证一下此篇文字的真实性和普遍性。

1 需要搭建mysql 8.019的的innodb cluster 的环境,需要三台机器

192.168.198.100

192.168.198.101 (Primary)

192.168.198.102

然后我们在 192.168.198.101 上test 库上创建lab 测试表(这个测试比较简陋,原想使用sysbench来做一次全面的测试,但0.5版本的sysbench 无法和mysql 8的 用户密码插件进行无障碍的访问,所以只能用下面的方式,另外如果是python 也是,需要升级你连接 mysql的 python-API,否则也会报错)

这里面就不免吐槽,什么叫一个好的产品设计

1  版本不同时,尽量降低用户的学习成本

2  版本不同时,尽量降低非必要的用户付出的成本

3  版本不同时,尽量降低关键部位的改变,或者有兼容的方式进行过度

所以 mysql 在5.7 到8.0 的升级路上,要付出的成本,不低,当然是挡不住人们的热情,但如果能做的更周到和妥帖,升级的路会更好。

然后 在正常的状态下,开始往lab表插入数据

while true;do mysql -uroot -ppassword --socket=/data/mysql/mysql.sock -e "INSERT INTO test.lab (hostname,create_time) VALUES ( @@hostname,now())"; done 2>/dev/null

根据如下信息,每秒的插入数据的在  89 每秒每条

然后直接在 mgr3的机器上的/etc/hosts 将 mgr2 对应的地址改为一个不存在的地址

3号机已经无法连接到 mgr2 获得集群的状态信息,但从系统表中看,集群还是稳定的。

然后故伎重演,在看看MGR3 与 MGR1无法通讯后,是否会影响数据的插入,最后可以看到,不会影响,并且插入的速度还更快了(仅仅修改了/etc/hosts)

每秒插入大约在 

可以看到,MGR3 已经和 MGR1 无法进行通讯了,但和主节点无法联系不同,至少还是可以进行状态的展示,所有和主节点之间无法连接对比和从节点之间无法连接的影响性要大。

我们继续故技重施,结果很有点意思

summary info:

系统正常的状态下,每秒插入89条数据

系统丢失一个(其实说丢失有点不准确)节点,插入数据每秒 126条

从节点和领一个从节点失联,每秒插入数据85条。

实际上这个测试可以做多次,例如做10次,然后取平均数(如果有人有时间可以试试)

所以针对那篇文字,实际上觉得有点问题,因为他缺少了一个从节点和从节点之间的测试,仅仅是测试了主节点和从节点之间的网络问题。

当然我的这个实验也不严谨是一定的,以上也纯属实验性,并不能得出什么可靠的结论。

另外有点感触到,DB如果想更深入的理解一些数据库系统的构建的知识想法,还是要有一些算法方面的知识,否则有些东西理解起来会有难度,所以会开始加入一些,关于算法方面的东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值