QPS激增会导致CPU占用升高
分析
可以使用监控工具,查看CPU利用率曲线图和QPS曲线图进行对比。如果CPU曲线图波动情况跟QPS曲线图波动情况基本保持一致,可以明确明确CPU升高时QPS上升导致。反之,CPU曲线图对比QPS曲线图有不同步的峰值抖动,则说明在QPS未明显激增的情况下,CPU占用过高,则大概率跟慢SQL相关,可进行后续慢SQL的排查。
备注:如果没有监控工具协助分析的情况下,可以使用show global status like ‘Questions’ 和show global status like 'Uptime’查询,将两者相除得到就是QPS值。
show global status like 'Questions';
show global status like 'Uptime';
解决QPS激增:
- 判断是否为实际业务激增导致,如果是实际业务激增导致,则可以通过资源扩充,满足业务激增的业务需求;
- 找到具体激增的查询所对应的应用系统的接口,进行限流控制,以保护数据库并发访问量;
- 应用采用读写分离,降低单点访问压力;
- 查看sql是否存在循环插入或者更新的情况,改为批量操作,减少执行次数。
慢SQL会导致CPU升高
分析
通过show processlist查看当前MySQL线程运行情况,主要通过 Time 连接时间和State当前SQL所处的状态来分析慢SQL,一般情况下如果存在Sending data说明该查询较慢,可以将