Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 411|回复: 0

记录一次MySQL数据库CPU负载异常高的问题

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-6-23 02:18:43 | 显示全部楼层 |阅读模式

    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。

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-1-22 23:55 , Processed in 0.058855 second(s), 30 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表