设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 303|回复: 0

[没事聊聊] xiaomiao版的NexusPHP源码pt程序存在mysql数据库挖矿一样的暴力写入漏洞

[复制链接]

签到天数: 4588 天

[LV.Master]伴坛终老

发表于 2024/6/7 22:02 | 显示全部楼层 |阅读模式 |Google Chrome 125.0.0.0|Windows 10
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
xiaomiao版的NexusPHP源码pt程序存在mysql数据库挖矿一样的暴力写入漏洞

问题
nvme固态硬盘被写爆,io延迟4000ms,同时数据库负载极高,占用CPU非常多,导致服务器系统负载高达50,站点无法打开
使用原版NexusPHP没有问题,问题只发生在xiaomiao版的NexusPHP

原因分析
不但全是innodb,还走的不是内存表。。。首先innodb性能就有严重问题,而且peers一定要放在memory内存表里面
1.png

解决办法
把peers表存储引擎改一下,这个表就应该放在内存表memory,可以随时清空的,内存表性能是最高的,每次重启mysql会清空内存表,客户端重新请求后会录入表
一般来说也更推荐MyISAM而不是innodb,MyISAM性能是InnoDB的十几倍吧,而且peers一定要放在内存表,他代码把peers放在InnoDB我是没想到的,在phpmyadmin里面改
peers都是随时可丢弃的临时数据但是却放InnoDB会导致CPU暴增,还疯狂写io硬盘,nvme延迟干废到几千ms
或者放redis可以,可以走redis读取缓存,但是会发生一次写入,这一次写入是没必要的,但是走redis缓存要看源码php有没有调度,不过至少从刚才的结果来看,肯定没走redis
3.png

修改成内存表后,磁盘基本不再发生写入流量,从原本的150MB/s写入降低到几十KB/s,延迟时间也从红色变回绿色
2.png

还有一种情况,不优化时间的话,请求永远30分钟固定一次,然后每30分钟服务器爆炸一次
所以才需要我那份优化的php,差分错开时间产生的连接数,让CPU永远平滑
停机更新维护后,或者客户端重启,时间就归0了
https://bbs.itzmx.com/thread-106481-1-1.html

欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2024/7/27 21:54 , Processed in 0.152922 second(s), 20 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

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