现象: 在压测过程中发现接口返回数据非常慢,甚至超时,页面加载不出数据
问题定位:如果有慢查询怎么恢复?
1.查看服务日志,打印连接数据库超时,接口返回超时
- 查看数据库所在节点cpu占用很高
- 使用select CONCAT('kill',id,',') from information_schema.processlist where Command != 'Sleep' order by Time desc;按照查询时间从高到低查看当前数据库查询线程,找到耗时较久的查询线程,也可以加上Time字段看下当前数据库查询最大耗时多少
下图是processlist 的全字段,显示当前数据库存在的线程
说明 使用CONCAT('kill',id,',')是为了查询结果更方便的看出线程id,否则会连在一起,区分不来
- 使用select concat('kill',id,',') from informatino_schema.proc