记录一次MySQL数据库CPU负载异常高的问题
1、起因
某日下午18:40开始,接收到滕讯云短信报警,显示数据库CPU使用率已超过100%,同时慢查询日志的条数有1500条左右。
正常情况下:CPU使用率为30%-40%之间,慢查询日志条数为0.
2、查询原因
因接收短信时,正好在回家的路上,无法处理,所以只能到家再处理。
在路上的时候,接收了几次恢复短信和再次异常短信。说明问题是一时有,一时恢复。
到家后,登录腾讯云数据库控制台,查询监控,发现CPU使用率确实为145%,且持续时间是20分钟。
18:40-19:00
19:20-19:40
然后,我登录腾讯云的phpMyAdmin控制台,想尝试看下有哪些查询正在发生。于是执行了show processlist命令,不巧的是,我执行命令的时候,高峰期已过,看不到任何查询。
于是,我下载了18:00-19:00之间的慢查询日志文件,想从中找到问题。下载之后,发现第一条慢查询开始的时间正是18:41分钟。且查看整个文件,发现都是同一条SQL语句,查询的是同一张表,且uid始终是同一个。
由于我对于业务不是很熟悉,于是我将这些SQL语句截图发给了开发人员。开发人员在看到SQL语句后,找到了相应的代码位置,并告诉了我,引发该SQL查询的原因是请求了某个地址,/account/...。
然后我下载了负载均衡的访问日志,只下载了18:00-19:00时间段的。我根据开发人员提供的URI,查询日志,发现真有记录。
然后,我尝试过滤该日志,以确定访问地址。我首先过滤整个日志,以统计/account/...出现的数量。发现数量为7900条。为了得知这7900条是否为18:00-19:00出现的,于是我单独过滤了日志中带"18:4"字符串的数量以及"19:5"字符串的数量。发现两者加起来的数量为7600条。说明这7900条请求确实是从18:40-19:00这个时间段开始发起的。
且很明显的是,所有请求来自同一个IP地址。原因很明显了,就是某个白痴在发起异常请求。
3、处理办法
首先在负载均衡的防火墙上限制了该IP的访问。然后开发人员也加上了CSRF。
记录一次MySQL数据库CPU负载异常高的问题的更多相关文章
- MySQL数据库CPU飙升紧急处理方法
MySQL数据库CPU飙升紧急处理方法 运行平稳的数据库,如果遇到CPU狂飙,到80%左右,那一定是开发写的烂SQL导致的,DBA首先要保证的是,数据库别跑挂了,所以我们要把那些运行慢的SQL杀死并记 ...
- 【Nginx】如何使用Nginx实现MySQL数据库的负载均衡?看完我懂了!!
写在前面 Nginx能够实现HTTP.HTTPS协议的负载均衡,也能够实现TCP协议的负载均衡.那么,问题来了,可不可以通过Nginx实现MySQL数据库的负载均衡呢?答案是:可以.接下来,就让我们一 ...
- CPU负载过高异常排查实践与总结
昨天下午突然收到运维邮件报警,显示数据平台服务器cpu利用率达到了98.94%,而且最近一段时间一直持续在70%以上,看起来像是硬件资源到瓶颈需要扩容了,但仔细思考就会发现咱们的业务系统并不是一个高并 ...
- 查询mysql数据库启动时间抛异常
mysql 5.7.10使用dbforget Studio 连接异常 提示:The'INFORMATION_SCHEMA.SESSION_VARIABLES' feature is dis 查看mys ...
- 记录--linux下mysql数据库问题
本次主要记录一下linux下mysql数据库的一些问题,也是之前经常用到的知识,这里简单总结一些问题,方便自己以后的回顾.原来一直使用的是阿里云的RDS数据库mysql版,主要是因为上次阿里云做活动可 ...
- 服务器cpu负载过高问题排查
https://blog.csdn.net/MrZhangXL/article/details/77711996 第一步 :执行top命令,查出当前机器线程情况 top - 09:14:36 up 1 ...
- [Oracle]Oracle数据库CPU利用率很高解决方案
Oracle数据库经常会遇到CPU利用率很高的情况,这种时候大都是数据库中存在着严重性能低下的SQL语句,这种SQL语句大大的消耗了CPU资源,导致整个系统性能低下.当然,引起严重性能低下的SQL语句 ...
- [ Mariadb ] 记录一次MySQL数据库时区的问题
操作系统:Centos 7数据库:5.5.52-MariaDB 根本问题:由于系统时区不对,造成数据库的时区和数据的时间不正确. 处理办法: # 查看系统时区, [root@mongodb ~]# t ...
- springboot整合mybatis连接mysql数据库出现SQLException异常
在springboot整合mybatis连接数据库的时候,项目中遇到一个SQLException,我检查了properties配置文件,看数据源有没有配错,检查有没有打错字,在数据库中把sql语句查询 ...
随机推荐
- CSS:CSS 图像拼合技术
ylbtech-CSS:CSS 图像拼合技术 1.返回顶部 1. CSS 图像拼合技术 图像拼合 图像拼合就是单个图像的集合. 有许多图像的网页可能需要很长的时间来加载和生成多个服务器的请求. 使用图 ...
- mybatis源码探究(-)MapperProxyFactory&MapperProxy
在MyBatis中MapperProxyFactory,MapperProxy,MapperMethod是三个很重要的类. 弄懂了这3个类你就大概清楚Mapper接口与SQL的映射, 为什么是接口,没 ...
- python Map()和reduce()函数
Map()和reduce()函数 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函 ...
- linux下根据根据进程号查端口、根据端口号查进程号汇总,以及netstat的相关资料(工作中匮乏的知识)
根据端口查进程: lsof -i:port netstat -nap | grep port 根据进程号查端口: lsof -i|grep pid netstat -nap | grep pid 根据 ...
- 详解Telecom
学习目标: 掌握Telecom入口和分析方法 总结和演进Telecom交互模型 掌握Listener消息回调机制 学习CallsManager 为什么选择Telecom分析? 这是由于在Android ...
- layui中下拉框问题
<div class="layui-form-item"> <label class="layui-form-label">上级栏目:& ...
- 68.最大k乘积问题 (15分)
C时间限制:3000 毫秒 | C内存限制:3000 Kb题目内容:设I是一个n位十进制整数.如果将I划分为k段,则可得到k个整数.这k个整数的乘积称为I的一个k乘积.试设计一个算法,对于给定的I和 ...
- 初识 flex 布局
开启弹性盒模式: display:flex / inline-flex: inline-flex 行内弹性盒 1.设置 flex 缩放的 限定值 min-width 最小值 min-wi ...
- 随笔记录 误删boot恢复 2019.8.7
系统还原: 1. 2. 3. 4. 5.进入硬盘 6.挂载光盘,安装恢复boot 7.安装grub2 8.重建grub.cfg文件
- Comparable和Comparator接口是干什么的?列出它们的区别
Java提供了只包含一个compareTo()方法的Comparable接口.这个方法可以个给两个对象排序.具体来说,它返回负数,0,正数来表明输入对象小于,等于,大于已经存在的对象. Java提供了 ...