mysql多线程:mysql 卡死 大部分线程长时间处于sending data的状态

有台服务器访问量挺大每天近250w动态pv数据库查询平均每秒近600次
台服务器跟这台不过只有每天约40w动态pv
前段时间连续卡死过几次当时状态是
服务器没崩溃数据库可正常登陆只是所有查询都卡在“sending data”状态长时间无法执行完这些简单sql语句有时候集中在A表上有时候集中在B表上同时还有些卡死在locked状态或update状态
看mysql介绍说明sending data状态表示两种情况种是mysql已经查询了数据正在发给客户端;另种情况是mysql已经知道某些数据需要去什么地方读取正在从数据文件中读取
mysql官方说这不是mysqlbug但是官方也没说如何处理......那么看情况就应该是配置方面问题了
首先从sql优化角度来查了查那些卡死sql语句都是简单查询消耗非常低索引做非常好所以觉得应该不是sql语句问题而且慢查询日志里也没有出现慢查询
把表都做了优化就是optimize table 过几天发现还是会出现卡死情况.....
后来考虑增加并发性能增加了key_buffer thread_cache 等系列内存配置发现没什么作用情况依旧
再后来把query_cache减小到默认值 16M些不如何变动数据做了静态化惊奇发现12天过去了没再出过问题......
后来想想修改query_cache可能对这个问题有些帮助毕竟数据更新比较频繁query_cache更新也很频繁不过看mysql状态query_cache命中率还是相当高差不多75%
觉得问题可能出在只是没查出来后来静态化那些内容些产品介绍说明文字个产品介绍说明也就 3 5十个汉字
这里出问题嫌疑比较大个页面有 7 8个产品加起来可能 3 5百个汉字虽然不多不过查询很频繁从这个表上查询数据量应该是很可观mysql会频繁从这个表拿数据不过不过有时候卡死语句并不是在查询这个表......
手头没有好使工具郁闷反正问题貌似好了先放下备案吧等以后水平高些再来查
Tags:  sendinggifts sendingreport sending mysql多线程

延伸阅读

最新评论

发表评论