上一篇: Mysql数据库DNS反查引发假死卡住

waiting for table level lock锁表引起Mysql卡死

上次给Mysql设置了取消DNS反查,以为能解决卡死的问题,结果不然,昨天晚上又出现该情况,这回没有直接kill -9,从控制台进入Mysql,执行show full processlist; 查看有sql语句处于send data状态,多个语句处于waiting for table level lock装填,其中有一条最扎眼,就是执行实时浏览数增加的UPDATE语句。分析来分析去没能找到具体原因,最有可能是访问了大的时候读写同时锁表,而且这个实时更新的功能从一开始我就有顾虑,做进去之后也一直没改。把统计的功能分发到另一台低配置的服务器上后,服务器资源降了下来,经过观察,这个UPDATE即便不是罪魁,也是本应该被改掉的烂设计。

到今天为止,服务器没有死过,mysql错误日志里也没有新增信息,而负责统计的服务器也非常正常,看来有时候人真不能懒,从CDN到分离服务,不仅提高了网站服务质量,而且降低了不少成本,过去一年多用了那么多核cpu和带宽成本虽然不算高,但是确实无必要的。

以后必须积极点。

推荐阅读

最新发表