MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

Cluster结构图

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

 

                                      测试环境简介

Mysql cluster集群测试环境

4 data node,32G 8核cpu

4 sql node, 16G 8核cpu

1 manage node,16G 8核cpu

Cluster版本:

         mysql-5.5.25ndb-7.2.7

单机innodb测试环境

  32G内存 32核cpu  mysql版本 5.1.56

测试工具

         1mysqlslap

         2sysbench

备注1:mysqlslap测试图片中,纵坐标为耗时(s),横坐标为最大的客户端连接数。

备注2:sysbench测试图片中,纵坐标为执行操作数量,横坐标为最大的客户端连接数。

 

mysqlslap和sysbench的使用可以参考以下资料:

http://blog.****.net/mchdba/article/details/8960249

http://blog.****.net/mchdba/article/details/8951289

 

 

 

 

 

1.1 Mysqlslap50W并发写

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

 

1.2Mysqlslap100W并发写

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

 

1.3Mysqlslap200W并发写

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

 

1.4Mysqlslap400W并发写

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

2.2 sysbench500W读写

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

2.2 sysbench1000W读写

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

2.3sysbench1500W读写

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

3.1 sysbench500W

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

3.2 sysbench1000W

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

3.2 sysbench2000W

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

4.1单条复杂sql测试结果1

 

以上可以看出,工具压力测试之下,4个datanode下,mysqlcluster的读写性能都要高于innodb,但是一些复杂的sql,在节点数少的情况下,mysqlcluster的查询性能比innodb稍差,比如:

SELECTSQL_NO_CACHE l.brand_code,l.card_crc,l.card_ln,l.card_limit_money,l.card_no,

  l.card_pwd,l.user_id,l.effect_date,l.expire_time,l.card_money,l.create_time,l.card_type,l.status,l.issue,l.isextension,l.active_time 

      FROM card_packagel  WHERE 1 ANDcard_type=20ANDis_reserve=0ORDER BYcard_lnDESC,card_noASC LIMIT 0,20;

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

4.2 单条复杂sql测试结果2

 

再看第二个复杂的sql,走全表扫描,检索的数据占据总量90%多(520W/550W)

SELECTSQL_NO_CACHE COUNT(card_no)FROMcard_couponl WHERE 1 ANDcard_type=30ANDis_reserve=0;从图中1节点2节点4节点的数据可以看出,比较复杂的sql或者检索数据比较多的sql,datanode越多,查询性能越高

MySQL Cluster初步测试结果汇总图示报告 用mysqlslap与sysbench进行测试

 

 

 

 

 

5.1cluseterinnodb总结

 

从以上1.X、2.X、3.X以及4.X系列可以看出,4个datanode下,大量并发的情况下:

1,在写操作上ndbcluster是innodb的3到4倍

2,在读性能上,ndbcluster是innodb的2倍,压力越大并发量越大时,ndbcluster的查询性能越高

3,99.999%高可用,无延时

 

 

 

 

Cluster需要注意的地方:

1,如果没有异地灾备或者第二组cluster备的情况下,0.001%的几率下,所有的数据节点一起down机,重新启动整个cluster比较耗时,经过测试,10G的数据加载到内存中,大概需要25分钟。

2,需要很多数据节点,所以对机器的数量要求比较多。

3,并发量小,cluster相对于innodb没有很大的优势,基本持平;但是一些复杂的sql查询或者表扫描的情况下,数据节点少的时候,cluster的性能会与单机innodb持平

4,sql在group、order之前的数据集越少或越接近最终结果集 还是比较好的,反之结果多了网络开销和多次计算使得它的查询性能会与单机持平甚至略差。

5,一条sql允许write的总记录行数是与config.ini的参数相关联的。

--------------------- 本文来自 黄杉 的**** 博客 ,全文地址请点击:https://blog.****.net/mchdba/article/details/10524599?utm_source=copy