love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

MySQL 8.0.20性能到底有多牛

本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

本文链接地址: MySQL 8.0.20性能到底有多牛

MySQL 8.0.20发布已经有几周了,最近太累,实在不想动了。借二宝/三宝不在家之际,昨晚用公司研发环境测试了一下,感觉性能确实有很大的提升;不废话,直接上数据。为了便于对比,为分别测试了MySQL 8.0.19 MGR 三节点和MySQL 8.0.20 MGR三节点的情况。

8.0.19的数据如下:

行这里为其实测试了多次,性能都差不多;总的来讲8.0.19 的tps在1126左右,qps在22000左右。注意我这里其实并没有把资源压满(因为研发有测试环境在run);如果资源压满估计应该在QPS在25000左右。另外我们也能看到抖动还是不低;延迟最低5.17ms,平均14.2ms,最大202ms。

下面我们来看看8.0.20的表现;为了对比,2次测试的数据库参数保持一致;其中8.0.20的测试我就增加了如下2个参数:

行MySQL 8.0.20 提供了一个针对double write的新机制,通过将double write文件进行独立存放;可以提供更高的性能。在之前版本中默认情况下就在innodb data home下面;即在系统表空间中。

直接上测试数据:

我们可以看到,tps达到了1500,QPS突破了30000;相比8.0.19版本而言,大概提升了进40%的性能;如果将资源跑满;同时将sysbench放到其他主机远程调用的话,我相信性能还有一定提升。我们不得不说这一改变,带来的结果确实是性能吊炸天的提升了。

不过,我们也不难发现抖动还是不低,延迟最低2.69ms,最大达到了240ms。平均达到了10.5ms;相比8.0.19版本也提升了不少。

对于8.0版本,在mgr流控方面有了一些新的机制变化:

新从参数上来看,8.0在流控方面比之前版本精细的多了。但是不得不说还是有一些问题。最近在某微信群看一前网易MySQL大佬说group_replication_flow_control_period参数如果调整为0.5甚至到0.2s的话,mgr的延迟要降低很多,同时性能可以提升很多。由于该参数显示设置最低为1s;因此无法在参数层面控制;只能修改代码重编译;改天研究一下。

无论如何,我们可以看到MySQL 8.0越来越稳定,相信不久的将来,将迎来大面积上线。

补充:

补充一点,8.0.18版本居然引入了一个比较坑爹的bug;导致后续版本init初始化时很容易报错;因此参数文件中增加了一些额外的插件,比如半同步等。我这里也遇到了,初始化了不下5次,才成功。

按照这个思路,我这里通过屏蔽double write参数后成功初始化,然后再还原参数即可。

Leave a Reply

You must be logged in to post a comment.