倒腾了好久才腾出手来测试MyCAT的性能如何,不废话,上干货
测试环境:虚拟机
主库:
CPU:Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz,逻辑核心8个
内存:32GB
硬盘:250G
从库:
CPU:Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz,逻辑核心8个
内存:32GB
硬盘:250G
采用MyCAT-1.4-RC版本,2015-06-17发布的,最新是06-19发布的版本
测试工具:sysbench-0.5,修改了oltp测试的脚本,让sysbench能够在MyCAT上进行测试
MySQL版本:
测试过程中的配置:使用远程连接的方式;使用128线程并发;测试数据为五张表,每一张表1000W行随机数据;开启热点数据模式;开启读写混合;关闭事务,使用了autocomment;MyCAT使用了读写分离;
测试表拥有统一的结构,
对比项目:(A)mysql单库 vs (B)MyCAT-分库全局表 vs (C)MyCAT分表分库
由于某些原因,只跑了一段时间就结束了测试,截图部分测试结果,因为没有开启事务,所以TPS均为0,就不截图了,测试过程中都没有出现error和reconnect
(A)Mysql单库结果:
(B)MyCAT分库全局表结果:
(C)MyCAT分库分表结果:
测试项目(A)
其中主库MySQL的线程CPU占有率超过了300%,IO等待超过30%,并且出现了性能抖动,基本可以认为已经给到了最大压力
测试项目(B)
同A
测试项目(C) 主库线程CPU占有率超过150%,从库的线程CPU占有率超过240%,两个库的IO等待都超过了25%;值得注意的是,MyCAT所在的服务器出现了用户CPU占有率100%的情况,后期可以考虑更换机器进行进一步的测试
初步测试结果总结:
MyCAT全局表性能被腰斩还要再给一刀,突出一个惨,这么惨的原因目前未知;
分库分表以后,虽然是由两个库同时参与了测试,不过效果比预料中的要好,之前开启事务导致读写分离失败的时候,分库分表几乎也是性能腰斩的局面;考虑到MyCAT的服务器出现了CPU:100%us的现象,也许是MyCAT服务器本身限制了分库分表的性能,所以还需要后期更换环境来进行详细的测试
--------------------------------------------------------------------------------------------测试结果比预想的好,Over~----------------------------------------------------------------------------------------------------
PS:开始测试工作了的话,大概server的调优也快了....?(? ???ω??? ?)?估计.....;有关MyCAT的资料参考博文http://blog.itpub.net/29510932/viewspace-1664499/
PPS:顺便吐槽MyCAT对于复杂的SQL支持还需要继续改进....._(:з」∠)_