性能测试(四)数据库cpu高分析方法

在压测一个申请接口过程中发现一个比较奇怪的现象,小并发(5个线程)情况下,数据库的cpu很快上升到90%多,应用cpu及qps都很低


数据库cpu及内存监控


应用cpu及内存监控


压测结果

发现问题后进行了如下排查:

1.首先可以确定瓶颈在数据库,需要先排查qps比较低的情况下为何数据库的cpu很高。首先先进行慢sql的排查。通过阿里云自带的数据诊断工具诊断后,未发现慢sql。通过pinpoint查看请求的链路发现sql的时间响应比较快,基本在10ms以内。

2.使用show full PROCESSLIST命令在压测期间多次执行该命令,并将结果导出。通过分析导出的执行文件

查看cpu中详细情况发现仅有4条sql。使用EXPLAIN发现sql未命中索引,导致全表扫描。最终通过优化索引的方式解决问题。

问题复盘:

1.全表扫描的sql为何诊断工具未发现为慢sql

通过排查发现,索引未命中的表数据量为44万,既不算多也不算少,因此全表扫描的响应时间没有特别长。如果该表数据量特别大,那么sql语句响应速度会特别慢,诊断工具就会发现这个慢sql

2.怎么分析出来该sql未命中索引?

一般可通过EXPLAIN来查看sql是否高效。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容