当前位置:   article > 正文

接口压测时MySql对CPU占用过高_压测数据库cpu很高

压测数据库cpu很高


记录MySql过多占用CPU资源的排查过程及解决方案


场景

1、需要对项目的接口进行压力测试

2、大部分接口压测是正常的

3、只有部分接口压测时MySql对CPU的占用达到90%

在这里插入图片描述


压测

压测线程数:30个

压测时间:1分钟

MySql对CPU的占用:92%


排查

一、是不是数据库链接不够用导致的

1、 使用“show full processlist”命令查看链接的使用情况

在这里插入图片描述

1.1、调整数据库链接池的连接数,将链接数配置多一些

在这里插入图片描述

1.2、再次使用“show full processlist”命令查看链接的使用情况

结果:依然没有空闲的链接

再次压测:CPU占用依然达到90%

在这里插入图片描述

二、压测时MySql的CPU占用过高,一般都是先进行SQL慢查询,再进行索引优化

1、使用“EXPLAIN”进行慢查询,检查sql脚本是否走了索引

在这里插入图片描述

检查结果:SQL脚本执行时,有一些表没走索引,导致全表扫描,影响效率

2、 为什么有索引却没有走索引

在这里插入图片描述

3、 进行调整,让sql在查询时走索引

在这里插入图片描述

4、 进行索引优化后,再次进行压测,压测时传递BeginTime和EndTIme的日期范围为一个月

第1次压测:
压测用户数:100
压测时间:1分钟
压测时Mysql对CPU的使用率:70%

第2次压测:
压测用户数:200
压测时间:1分钟
压测时Mysql对CPU的使用率:70%

结果:算是比之前好很多


原因

控制器接口执行的SQL语句,是走全表扫描,没有走索引


解决

对SQL进行索引优化

补充:MySql对CPU占用过高的原因

1、MySql服务器本身的配置问题
2、服务器硬件的问题
3、业务代码的问题
4、SQL脚本的问题
 

补充:MySql对CPU占用过高的场景

例如:除了接口基本的业务会访问数据库,后续可能还有一些统一的操作会访问数据库
1、接口业务处理结束后,插入操作日志
2、在用户登录成功后,插入登录日志
3、在用户访问接口时,插入系统日志

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/583188
推荐阅读
相关标签
  

闽ICP备14008679号