ProxySQL 本身是一款非常棒的MYSQL 中间件的开源产品, 在公司运行了一段时间后,突然一天报警,所在机器的CPU 出奇的高,之前在测试系统, 预生产, 以及生产系统均没有出现问题. 开始未来紧急解决问题,重新启动了proxysql服务,并查看错误日志.

PROXYSQL 的系统版本的2.012 MYSQL 的版本是8.011 , PROXYSQL 的错误在上边. 但后期又继续发生了类似的问题, 并且其中有一次,重新启动PROXYSQL 后在 1- 2秒后, 问题重复,CPU 又开始标高,但CPU 等其他指标都比较低.

随后我们针对PROXYSQL 进行了压缩, 通过模仿高并发连接, 1000并发,不断的进行数据访问, 以及模拟突然的连接失效(断掉), 看看PROXYSQL 本身是不是出现的我们遇到的类似的问题.

在压力测试的过程中,PROXYSQL 系统本身没有出现任何异常的情况, CPU 始终在 %3以下, 在压力测试超过1000并发后, 并且PROXYSQL 最大设置的MAX Connection 1000 的情况下, PROXYSQL 在短时间有CPU 消耗达到25%的情况.  但整体的情况是稳定的.

那到底什么导致了PROXYSQL 系统的CPU 在某个时间段突然超高并且只能进行相关的重启后,CPU 才能下降.

这里和公司的网络安全人员进行了相关的配合,其中发现在漏洞扫描期间,PROXYSQL 有CPU 超高的时间匹配度.随后网络安全人员,进行了如下测试,

PROXYSQL

在漏洞扫描程序扫描时, 会对PROXYSQL 开放的 X11  协议端的端口进行扫描,在扫描时会反馈,下面的信息, 8.0.5 是在PROXYSQL 设置的,因为如果使用了MYSQL 8 后在PROXYSQL 中的version 信息不设置的情况下, 会导致JAVA 程序访问MYSQL的问题, 因为8.0以后的MYSQL 去掉了 query_cache , 但如果PROXYSQL 不设置版本,则 JAVA 的封包的程序会回馈, query_cache 找不到的 问题, 而 mysql_native_password 也是因为兼容大部分MYSQL 原理的程序登录的方式,将MYSQL 的默认密码验证的方式调整成原来5.X的方式.

所以这里漏扫程序会对敏感词 password 展开尝试性的密码匹配库的嗅探工作,而这样的工作导致,proxysql 在X11 端口中出现问题,进入一个死循环.

最终导致PROXYSQL 出现CPU 超高的问题.

解决方案: 在防火墙的IPS 模块对无效请求的数据包进行过滤(其实网络的问题,我不大理解到底IPS 是什么,怎么就对无效请求的数据包进行过滤,就避免了PROXYSQL 的CPU 不在提高,回来还的深入的问一下网络人员)

另外对其中一个参数,mysql-threads 在解决问题的时候,有人提出加大proxysql  中的 mysql-threads 的线程数,提高 proxysql 处理的速度,降低CPU 的 usage 的百分比.

实际这样的想法是错误, mysql-threads 本身针对当前CPU 的数量进行的设置,PROXYSQL 本身针对系统的运行期间,CPU 主要消耗在  SYSTEM CPU ,而不是USER CPU , 这里的意思是CPU 主要是消耗子在将信息从 客户端发送给MYSQL 以及信息专递回 客户端的, 如果 USER CPU 本身消耗的很高的情况下,则说明PROXYSQL 在处理数据方面有问题, 例如设置了太多的规则,导致一个SQL 在规则方面耗费的CPU 较多的情况.

另外盲目调整 mysql-threads 本身就是一个问题, 如果CPU 本身CORE 就很少,但是PROXYSQL 使用CPU 较多, 调整mysql-thread 更大的情况下,会造成CPU 上下文切换比较频繁,最终导致CPU 更加的繁忙.

所以如果CPU 高先分析以下几个问题

1  CPU 在什么 时间点高,是一直高还是有时间段

2  如果是有时间点的高,则考虑业务,或者业务触发的某些业务量上涨后的问题

3  如果是CPU 一直高,则考虑是由于一些BUG 或者 非业务的问题造成的,主要就要去查看日志,和进行STRACE 问题了, 难度可能就有提高了,另外PROXYSQL 中的设置的规则太多也可能会造成相关的问题.

airodump-ng wlan0mon扫描不到网络_MySQL ProxySql 由于漏洞扫描导致的 PROXYSQL CPU 超高...相关推荐

  1. 网络攻防——Goby+AWVS漏洞扫描

    Goby+AWVS漏洞扫描 1.什么是AWVS 2.AWVS的靶场环境搭建 3.靶场搭建 4.利用AWVS扫描靶场 5.Goby的安装和使用 6.近期使用kali遇到的坑 1.什么是AWVS      ...

  2. Web漏洞扫描(一:利用WVS进行漏洞扫描)

    任务一.利用WVS进行漏洞扫描 1.1.Acunetix WVS 的下载与安装: 1.1.1.WVS的安装(按照图中的指示执行): 1.1.2.勾选"Create a desktop sho ...

  3. 网站漏洞扫描工具_如何实现免费网站漏洞扫描?推荐一款神器给你

    网站漏洞想必有网站的人都比较了解,想要了解网站漏洞,最好的办法就是给网站做一次漏洞扫描,网站漏扫产品比较多,费用也从几十/次到几千/次不等,但是对于我这种小企业来说,几千一次也是非常贵的,因此在我的努 ...

  4. 网络漏洞扫描的原理和相关程序

    1 引言 网络扫描,是基于Internet的.探测远端网络或主机信息的一种技术,也是保证系统和网络安全必不可少的一种手段.主机扫描,是指对计算机主机或者其它网络设备进行安全性检测,以找出安全隐患和系统 ...

  5. 网络对抗技术-Exp5-信息搜集与漏洞扫描 20181314

    一.原理与实践说明 1.实践原理 2.实践内容概述 3.基础问题回答 二.实践过程记录 任务一:各种搜索技巧的应用 任务二:DNS IP注册信息的查询 任务三:基本的扫描技术:主机发现.端口扫描.OS ...

  6. Nessus进行漏洞扫描的过程

    对于一个服务器运维工作者,掌握和运用一门漏洞扫描的工具也是行走江湖的必备项,Nessus就是漏洞扫描的强力武器.nessus为一款当下比较流行的系统弱点扫描与分析软件,他的优点是操作简单(配置几乎全w ...

  7. 26学习渗透测试工具 Metasploit 的基本用法,包括漏洞扫描、攻击模块

    Metasploit是一款广泛使用的渗透测试工具,它提供了大量的漏洞扫描.攻击模块和负载等,可以用于评估系统的安全性.下面是Metasploit的基本用法教程,包括漏洞扫描和攻击模块的使用. 漏洞扫描 ...

  8. 【网络安全】什么是漏洞扫描?有哪些功能?

    一.什么是漏洞扫描? 漏洞扫描是指基于CVE.CNVD.CNNVD 等漏洞数据库,通过专用工具扫描手段对指定的远程或者本地的网络设备.主机.数据库.操作系统.中间件.业务系统等进行脆弱性评估,发现安全 ...

  9. 自动化漏洞扫描工具使用指南

    作为企业的IT安全管理员,您的重要任务之一,一定离不开全面的漏洞管理.即,全方位地评估.报告和缓解企业内部技术栈中,存在的各项安全弱点和网络威胁.而面对此类繁杂复杂的工作时,我们往往需要借助自动化的漏 ...

最新文章

  1. fast软件_自媒体者遇见喜欢好听的视频背景音乐,用一款软件就可以把它提取...
  2. linux 虚拟网络设备详解(四)
  3. 缓存框架OSCache部分源码分析
  4. linux c编程头文件,如何在Linux中找到C编程语言的头文件?
  5. h710阵列卡支持最大硬盘_DELL服务器RAID磁盘阵列在线扩容(以H710P阵列卡为例)
  6. eclipse git插件简单使用
  7. 安装报错_MySQL8.0安装后,报错ERROR 1045 (28000)
  8. python怎么读发音百度翻译-python selenium 爬取百度翻译单词音标-Go语言中文社区...
  9. MPlayer源代码分析
  10. 数据可视化大屏有哪些优势
  11. go语言之进阶篇字符串转换
  12. Windows10安装ubuntu18.04双系统教程(双硬盘)
  13. shader 获取法线_Unity Shader教程 三、法线方向
  14. linux的命令解释器-----shell
  15. GPIOA高8位输入控制低8位输出(位运算)
  16. 中富金石投教怎么样?让专业投资创造更多财富机会
  17. 易语言 执行java_CallJava易语言调用JAVA代码
  18. 《用于自动越野导航的实时语义映射》论文笔记
  19. 2017 开源中国新增开源项目排行榜 TOP 100
  20. 巧用canvas实现画板功能,使用画笔在图片上涂画,橡皮擦可擦除涂画,并保存

热门文章

  1. 学计算机的如何学英语,怎么在电脑上学习英语
  2. python多线程同步与互斥_python多线程编程(3): 使用互斥锁同步线程
  3. pom.xml中添加阿里云Maven中央仓库配置
  4. 前端_网页编程 WebAPI_01
  5. JavaScript-概述
  6. 四个变量的图表怎么做_品牌策划方案怎么做?5步图文帮你绘制专业策划图表...
  7. android顶部导航高度,Android特效——————底部/顶部导航条(Fragment+ViewPaper+XTabLayout)...
  8. 福建学业水平测试计算机考点大纲,福建高中信息技术学业水平考试说明大纲
  9. qt中设置QCheckBox的文本与勾选框之间的距离
  10. Python eval 与 exec 函数 - Python零基础入门教程