zoukankan      html  css  js  c++  java
  • 一次关于mysql故障的处理

                               

        今天早上正在看文档,手机就收到报警了,说是有一个服务器不能访问了,直接登录到服务器上(还好服务器还能登录),利用top看了下发现资源占用不是很多,但是在进程里面发现Tasks: 1560 total,这个服务器一般的进程只是在100200之间,以前出现过mysql的一个表坏掉造成mysql挂死的情况,于是赶紧查看下mysql的日志,没发现错误,登录到mysql,利用show processlist命令查看,发现队列严重,有1000多个进程等待处理,于是执行:

    /usr/local/apache/bin/apachectl stop                                                 

    mysqladmin -uroot -p shutdown

    /etc/rc.d/init.d/mysqld start

    /usr/local/apache/bin/apachectl start

    开始正常,继续用top命令查看,发现进程又开始逐渐上升到1000以上,很明显mysql出问题了,另外还发现%wa这项特别高,也就是说io等待很严重,再次重启mysql,利用show full processlist查看mysql处理的进程,并打开另外一个窗口不停的用top查看%wa的大小,反复几次,终于发现有一个语句执行的时候导致%wa60%以上,下面那个语句就是罪魁祸首:

    select distinct tags from tags where status =0 order by click_count_mo desc limit 50

    单独执行这条语句1分多钟还没执行完,于是断定应该是distinct的效率太低造成的,tags表有200多万的数据,发现问题就好解决了,联系开发,当开发把distinct去掉后,问题解决!原来这个语句是昨天才放到刚建的虚拟主机上的!

           感谢下nginx,一台服务器出问题让我可以很从容的处理!呵呵!

  • 相关阅读:
    各种解码网站
    带你走进php大马的结构模块编写之路
    如何优雅的调戏XSS
    静态分析第三发 so文件分析(小黄人快跑)
    C# Window编程随记——ClickOnce程序部署
    sklearn特征选择和分类模型
    实现Activity的滑动返回效果
    JSP自己定义标签继承哪个类
    [LeetCode][Java] Unique Paths II
    关于腾讯微博之死,离职员工所了解的真相
  • 原文地址:https://www.cnblogs.com/feihongwuhen/p/7170436.html
Copyright © 2011-2022 走看看