一次由于索引引发的服务崩溃,JVM线程升高,但是Tomcat工作线程没有太大改变

Stephen_Qu 发布于 09/10 21:16
阅读 385
收藏 1

由于一个查询慢查,导致整个系统大面积不可用,但是从监控中看到,内存飙升了,JVM工作线程满载了,但是Tomcat工作线程却没有太大压力,很奇怪。

加载中
0
冷川
冷川

系统内部自身也会请求数据库,比如定时任务什么的,数据库压力大的情况下,都会导致整个服务压力满载的。

0
Stephen_Qu
Stephen_Qu

初步排查下来,是因为数据库CPU被打满后,外部系统调用超时后被熔断。附上当时数据库的CPU、请求监控。

但同时引出了另一问题:这个条sql不是最近才上的,该表的数据也没有新加,当时也没有对该表的DDL和增删改操作,为什么当时就出现了慢查,并导致了数据库CPU的飙升,平时慢查监控并没有爆出这条sql?

0
Will_awokE
Will_awokE

rds有统计慢sql的吧

Stephen_Qu
Stephen_Qu
有的,平时慢查监控并没有爆出这条SQL,但是在昨晚突然爆出来。数据量并没有太大的变化,唯一区别的是当时数据库的请求变多了。我们把数据库同步到本地,执行同样的SQL,只要0.03秒,而当时这条请求有的甚至超过3秒
0
起个起个名字都难
起个起个名字都难

会不会是用户点击过多,导致同时有许多慢查询占用服务器线程和mysql连接,并且一条sql查出了大量数据,导致内存占用加大,直到崩溃

返回顶部
顶部