xiaomiao版的NexusPHP源码pt程序存在mysql数据库挖矿一样的暴力写入漏洞
xiaomiao版的NexusPHP源码pt程序存在mysql数据库挖矿一样的暴力写入漏洞问题
nvme固态硬盘被写爆,io延迟4000ms,同时数据库负载极高,占用CPU非常多,导致服务器系统负载高达50,站点无法打开
使用原版NexusPHP没有问题,问题只发生在xiaomiao版的NexusPHP
原因分析
不但全是innodb,还走的不是内存表。。。首先innodb性能就有严重问题,而且peers一定要放在memory内存表里面
解决办法
把peers表存储引擎改一下,这个表就应该放在内存表memory,可以随时清空的,内存表性能是最高的,每次重启mysql会清空内存表,客户端重新请求后会录入表
一般来说也更推荐MyISAM而不是innodb,MyISAM性能是InnoDB的十几倍吧,而且peers一定要放在内存表,他代码把peers放在InnoDB我是没想到的,在phpmyadmin里面改
peers都是随时可丢弃的临时数据但是却放InnoDB会导致CPU暴增,还疯狂写io硬盘,nvme延迟干废到几千ms
或者放redis可以,可以走redis读取缓存,但是会发生一次写入,这一次写入是没必要的,但是走redis缓存要看源码php有没有调度,不过至少从刚才的结果来看,肯定没走redis
修改成内存表后,磁盘基本不再发生写入流量,从原本的150MB/s写入降低到几十KB/s,延迟时间也从红色变回绿色
还有一种情况,不优化时间的话,请求永远30分钟固定一次,然后每30分钟服务器爆炸一次
所以才需要我那份优化的php,差分错开时间产生的连接数,让CPU永远平滑
停机更新维护后,或者客户端重启,时间就归0了
https://bbs.itzmx.com/thread-106481-1-1.html
确实,给tracker加上数据库支持之后,本以为用rocksdb能扛住,现在看来还是想多了,直接原地爆炸 高渐离 发表于 2025/2/11 21:11
确实,给tracker加上数据库支持之后,本以为用rocksdb能扛住,现在看来还是想多了,直接原地爆炸
tracker服务器本身都是内存调用操作,没有涉及到数据库,这些都是在内存中不可见的
如果对访问数据感兴趣肯定是要个外置数据库来实现记录,走 meilisearch 理论上可行,但是并不推荐用数据库去记录,性能损耗太严重了,本来1核心能做的事情,加上数据库就需要4核心或者8核心
小樱 发表于 2025/2/11 21:26
tracker服务器本身都是内存调用操作,没有涉及到数据库,这些都是在内存中不可见的
如果对访问数据感 ...
4c8g不够,还是会堆积,这个也可能和我试图用数据库去追踪状态,加了唯一键的缘故
页:
[1]