(16)mysql瓶颈 & MGR和一致性读 性能测试

2020-11-14  本文已影响0人  hedgehog1112

一、单机mysql瓶颈

1、支撑多少数据?多少张表?

容量:看硬件

    InnoDB 最大容量64TB,存储引擎将InnoDB 保存在一个表空间内(原始磁盘分区,由数个文件创建)。这样,表大小能超过单独文件最大容量

    MySQL 3.22(MyISAM)限制表大小4GB,最大表尺寸增加到65536TB(2567 – 1字节)。最大有效表尺寸通常是由操作系统文件大小限制决定的,不是由MySQL内部限制决定。

最多20亿个表,一个表允许定义1024列,每行的最大长度为8092字节(不包括文本和图像类型的长度);

2、单表数据不超过500万行:是经验数值,还是黄金铁律?

阿里《Java 开发手册》提出单表行> 500w 容量>2GB,才分库分表

与 MySQL 配置及硬件有关,实际记录的条数无关。因为表索引装载到内存,InnoDB buffer size 足够,才能全加载进内存,查没问题。达量级限时,导致内存无法存储索引,产生磁盘 IO,性能下降。增加硬件配置解决。500w算折中

3、qps

QPS在8400左右:400个线程并发,插入100万条记录(4核2.33G、3G内存、SATA硬盘)https://www.iteye.com/blog/wwtang9527-1718292

写:90-100M/S(机械硬盘,7200转)预计kB_wrtn/s在90M左右

https://www.cnblogs.com/zhiqian-ali/p/6336521.html

4、mysql支撑多少连接数?

show variables like 'max_connections'  mysql当前最大连接数

set global max_connections=1000;  设置当前最大连接数为1000;mysql重启时失效,需要长期生效在my.ini 添加 max_connections=1000

二、MGR和一致性读 性能测试

从业务使用场景出发,根据RDS套餐类型和线上实际访问流量,来衡量性能指标,以便方便对标实际业务场景。

环境

测试方法

MySQL 5.7.21 Group Replication

MySQL 5.7.21 Group Replication with Consistent Read

同机房3节点、跨机房3节点

网络异常:长时间延时0.5ms,长时间延时2ms,丢包0.01%

场景1、2的差异可以衡量跨机房网络带来的性能损耗

场景3关注在网络质量变化时带来的性能变化

同机房3节点为 05 06 03    跨机房3节点为 05 06 01

机器部署:同IDC3台(永顺ys 03 05 06),跨IDC1台(广州gz 01)

正常的网络质量:

同IDC RTT(06->05):RTT min/avg/max/mdev = 0.051/0.059/0.070/0.010 ms

跨IDC RTT(01->05):RTT min/avg/max/mdev = 0.739/0.749/0.810/0.027

    跨IDC的网络耗时是同IDC的1.3倍,在设置延迟0.5ms后的网络质量:

同IDC RTT(06->05):RTT min/avg/max/mdev = 0.507/0.564/0.617/0.037

跨IDC RTT(01->05):RTT min/avg/max/mdev = 1.199/1.248/1.315/0.046

    跨IDC的网络耗时是同IDC的2.2倍,在设置延迟2ms后的网络质量:

同IDC RTT(06->05):RTT min/avg/max/mdev = 1.963/2.054/2.161/0.064 ms

跨IDC RTT(01->05):RTT min/avg/max/mdev = 2.642/2.732/2.835/0.076 ms

参考:http://blog.720ui.com/2019/mysql_why_one_table_500w/?spm=a2c4e.10696291.0.0.26e819a4zY3hrA&aliyun

https://my.oschina.net/u/867417/blog/758690

上一篇下一篇

猜你喜欢

热点阅读