接到报警通知,负载过高,达到800%,load也过高,有11了。

MySQL版本为5.6.12-log

1 top 之后,确实是mysqld进程占据了所有资源。

2 查看error日志,无任何异常

3 show eninge innodb status\G,没有死锁信息。

4 show full processlist;

没有耗时非常大的慢sql再跑。看并发,当前的线程总数量也才30个左右。

5 查看iostat,读写正常。

到底是什么问题呢?查看slow log,发现如下SQL,频繁执行,耗时在5秒之间,explain有Using join buffer (Block Nested Loop)

mysql> explain selectweb_page_object.web_page_object_id,-> web_page_object.object_id,-> web_div_name,web_page_object.position_sort,web_page_object.end_time,om1.label,om1.file,jump_url,om2.label as label1,om2.file asfile1-> from web_page_div,web_page_object,object_media as om1,object_media asom2-> where web_page_div.id=web_page_object.web_page_div_id-> and web_page_object.object_media_id=om1.object_media_id-> and web_page_div.web_page_id=1200

-> and if(web_page_object.object_media_id1=0,-> web_page_object.object_media_id=om2.object_media_id,-> web_page_object.object_media_id1=om2.object_media_id)->

-> and '2014-05-01 15:09:49'>=start_time-> and '2014-05-01 15:09:49'<=end_time->

-> and object_status=0

-> order by web_page_div.id,web_page_object.position_sort;

+----+-------------+-----------------+--------+-----------------------+---------+---------+-------------------------------------------+-------+----------------------------------------------------+

| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |

+----+-------------+-----------------+--------+-----------------------+---------+---------+-------------------------------------------+-------+----------------------------------------------------+

| 1 | SIMPLE | web_page_object | ALL | object_media_id_index | NULL | NULL | NULL | 51165 | Using where; Using temporary; Using filesort |

| 1 | SIMPLE | web_page_div | eq_ref | PRIMARY,idx | PRIMARY | 4 | db_jiapin.web_page_object.web_page_div_id | 1 | Using where |

| 1 | SIMPLE | om1 | eq_ref | PRIMARY | PRIMARY | 4 | db_jiapin.web_page_object.object_media_id | 1 | Using where |

| 1 | SIMPLE | om2 | ALL | NULL | NULL | NULL | NULL | 74759 | Using where; Using join buffer (Block Nested Loop) |

+----+-------------+-----------------+--------+-----------------------+---------+---------+-------------------------------------------+-------+----------------------------------------------------+

Using join buffer (Block Nested Loop)

看SQL是where后面的if判断引起的,拆分if之后,就正常了,SQL耗时不到0.1秒。数据库load也降下来了。

还记录以前碰到的

(Block Nested Loop)的案例是 join后面的on条件里面有or判断。

也会引起Block Nested Loop,导致数据库负载过高。

mysql的cpu飙升到500_[MySQLCPU]线上飙升800%,load达到12的解决过程相关推荐

  1. 线上飙升800%,load达到12的解决过程

    接到报警通知,负载过高,达到800%,load也过高,有11了. MySQL版本为5.6.12-log 1 top 之后,确实是mysqld进程占据了所有资源. 2 查看error日志,无任何异常 3 ...

  2. mysql时区错乱_记一次线上mysql时区错乱

    Mysql查询时间和页面显示时间相差八个小时. 在一次线上程序调用mysql内部函数转化时间戳的时候的bug记录.在本地开发与测试环境都没得问题.但是上线后,程序总是不再状态. 遂开启审阅代码的过程, ...

  3. mysql连接池泄露_一次线上故障:数据库连接池泄露后的思考

    作者:陈朗,普兰金融科技能效工程部开发工程师 一:初步排查 早上作为能效平台系统的使用高峰期,系统负载通常比其它时间段更大一些,某个时间段会有大量用户登录.当天系统开始有用户报障,发布系统线上无法构建 ...

  4. vb.net服务器启动后cpu占用了70_记一次服务器被异常程序占用的解决过程(怀疑黑客攻击)...

    最近在跑实验,但是突然发现程序运行变慢,然后top命令查看程序运行情况,发现有异常进程,名字叫 bash,占用 2400% CPU计算资源. 刚开始怀疑是挖矿程序,因实验室网络IP为教育网公网,怀疑被 ...

  5. mysql阿里云不显示中文乱码_MySQL命令窗口下中文显示乱码的解决过程

    MySQL命令窗口下中文显示乱码的解决过程 在dos客户端输出窗口中查询表中的数据,还有项目部署到服务器上时前台的页面,中文数据都显示成乱码,如下图所示: 这个问题困扰了我一天,后来解决了才发现原来我 ...

  6. 线下auc涨,线上ctr/cpm跌的原因和解决办法

    " 这两年深度模型大火之后,各个团队都卯足了劲把网络规模做大做深,花了很大力气好不容易离线auc涨了不少,上线一看效果ctr和cpm反而下降.本文例举几种可能的原因和解决办法." ...

  7. java close wait过多_我是如何确认线上CLOSE_WAIT产生的原因及如何解决的。

    1.阐述 内部架构:Tomcat应用程序---> nginx ---> 其他Tomcat应用程序,内部Tomcat应用通过nginx调用其他应用. HTTP插件:HttpClient 4. ...

  8. load average多少是正常_对 cpu 与 load 的理解及线上问题处理思路解读

    (给ImportNew加星标,提高Java技能) 转自:五月的仓颉 前言 2019双11还有几天就要到来了,大家也都知道服务器在大促期间由于流量的增加势必导致机器的cpu与load变高.因此趁着这个时 ...

  9. 线上故障如何快速排查

    前言 上线定位问题的思路很重要,先分析大致方向是哪出现的问题 内存.CPU.恶意攻击.使用的服务,包含 NGINX REDIS MYSQL PHP,最好搞一个监控系统用来实时监控 设置预警值 到达一定 ...

最新文章

  1. c++ 从混合中英文数字等的string 中按顺序分别输出
  2. springboot整合websocket实现群聊
  3. JAVA 编程开发入门-张晨光-专题视频课程
  4. 伯纳德•罗森伯格先生参加华为技术2016首届国际光电连接技术研讨会
  5. codeforces E. Game with String 概率
  6. 计算机专业需要汇编语言,重点大学计算机专业系列教材·汇编语言程序设计
  7. maven关联oracle,maven添加oracle jdbc依赖
  8. [SHOI2009] 会场预约
  9. STM32的2.02固件库提供的启动文件详解 stm32f10x_vector.s
  10. Firefox 4.0浏览器正式版再次推迟发布
  11. Java 如何保证线程安全,你真的清楚吗
  12. 443端口被攻击怎么办
  13. centos使用yum时提示Segmentation fault错误的深入研究
  14. 【​观察】机遇和挑战并存 智能手环需要来一次华丽的蜕变
  15. 每年工作日与非工作日的设置
  16. 实例讲解:JAVA SOAP技术(2)完
  17. Verilog计数器0~9999
  18. 返利网PHP面试_【返利网PHP面试】面试不算难 但是公司的办事奇怪-看准网
  19. 10053 事件浅析
  20. Java中的Object类和Class类

热门文章

  1. html:web前端开发规范
  2. Android中的IPC机制
  3. Google C++编程风格指南(一):背景
  4. 【IEnumerable】扩展方法的使用 C#
  5. xcode 4.2开发 ——navigation controller 添加按钮
  6. hash()函数的实现
  7. 去广州见了我大学老师标哥
  8. 薪资是跳出来的,不是涨出来的!
  9. 调试,是一件有挑战的事情
  10. samba 服务器搭建