【原创】记一次MySQL大表高并发写入引发CPU飙升的排障过程

本文详细记录了一次由于MySQL大表高并发写入导致CPU飙升的故障现象,从初步分析到排障过程,再到优化方案的实施。在排查中,发现无用索引、内存不足以及随机GUID导致的页拆分是主要问题。通过删除无用索引、提升服务器内存、优化热表索引,最终成功解决了CPU高消耗问题,实现了性能提升。
摘要由CSDN通过智能技术生成

 目录

一.故障现象... 1

二.初步分析... 2

三.排障过程... 2

1.排查是否QPS或insert并发请求上升导致问题发生... 2

2.排查是否锁资源等待或block导致了insert变慢... 3

3.排查是否表上无用索引导致的写入时间较长... 5

4、人工抓取perf,排查CPU上升期间的资源消耗... 5

5、疑似触发MySQL BUG,进一步分析... 6

四.优化过程... 8

1.初步优化方案... 8

2.删除一批无用索引,将服务器内存升级到80G.. 9

3.未达预期,还需继续优化... 11

4.热表索引分析... 11

5.随机GUID建立索引的性能测试... 13

6.热表索引优化方案... 14

7.前缀索引的性能测试... 14

8.删除热表上非顺序的二级索引... 16

五.最终优化方案... 17

六.总结... 18

 

一.故障现象

有台生产服务器间歇性CPU飙升,出现大量insert语句的慢查询,相关业务的响应时间随之大幅上升

 

二.初步分析

从监控报告来看,这台服务器的负载并不高

消耗时间高的SQL是insert系列语句

 

三.排障过程

1.排查是否QPS或insert并发请求上升导致问题发生

 

排查并发请求没并有突然升高,反而在问题时间段先大幅下降再小幅上升,这个现象说明MySQL在问题时间段的处理能力发生了下降

表的insert并发频率并没有大的波动

 

2.排查是否锁资源等待或block导致了insert变慢

以一句慢查询insert into为例,查询SQL执行的明细记录ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值