<span>connection was bad 真实案例</span>

####################################

一、背景:

         业务反映他们程序端日志最近老有“connection was bad”报错,

         服务端程序语言为:golang

         数据库驱动程序:golang自带的驱动

         数据库架构:lvs+kingshard+mysql的一主多从集群

      

具体报错日志如下图也:

 

 

 

业务方程序访问数据库:

 

 

 

 

二、原因:

        由于业务方之前有大量的慢查询,当时为了不让数据库奔溃,跟业务商量后,决定暂时杀掉这些慢查询,以免影响其他查询,所以,当时就给这个mysql集群的每个实例都配置了一个杀掉慢查询定时任务,该任务如下:

/usr/local/bin/pt-kill --host=xxx --user=root --password=root --match-info=select|SELECT --victims=all --interval 30 --busy-time 300 --kill --print --daemon

 

       由于该任务中配置了-match-info=select|SELECT 和 --busy-time 300,表示查询时间超过了300s的sql就会被pt-kill工具给杀掉,因此业务方的sql由于有慢查询,且时间超过了300s,所以就会给业务方直接杀掉了,因此报该错误,由于时间好几个月了,自己也忘记了配置的这个任务,因此定位时间花了我一个周,开始以为是业务方没有按照lvs的连接超时机制来配置,然后让业务方按照要求配置,结果业务方按照要求配置了后,还是有这样的报错,于是业务方拿出了sql语句,开始怀疑是慢查询,我这边在kingshard日志中也获取到了这个sql的报错,于是手动直连一个数据库从库进行查询,结果在300s的时候就出现了:ERROR 2013 (HY000): Lost connection to MySQL server during query

     于是,开始怀疑到了pt-kill定时任务,结果一查看,果然有这个pt-kill任务在跑。

 

三、解决:

         和业务商量后,决定这个定时任务暂时还是不取消,业务自己改进下sql。

 

##################################

全部评论

相关推荐

11-28 17:58
门头沟学院 Java
美团 JAVA开发 n×15.5
牛客786276759号:百度现在晋升很难的 而且云这块的业务没美团好 你看百度股价都跌成啥样了
点赞 评论 收藏
分享
10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务