一次线上SQL评测机的阻塞排查
场景
昨天线上的MySQL评测机的rabbitMQ消息队列时不时就会出现消息堆积的现象,影响了正常学生的提交,这个问题比较紧急,因此马上就着手排查。
排查
首先检查是否是rabbitMQ本身的问题,进入rabbitMQ的管理页面,发现一切正常,排除。
然后就怀疑是否消费者不消化消息了,这里消费者是SQL评测机,是在k8s集群上运行的一个容器,通过kubectl exec -it
进入容器后,我们想到了用阿里巴巴的arthas工具,通过trace方法追踪阻塞原因,
在经过几个小时的trace后,终于找到执行慢的方法是在JdbcTemplate.execute()
,卡在了执行sql语句的地方,于是我们怀疑是不是MySQL卡住了。