目录
一.故障现象... 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执行的明细记录ÿ