今晚23点,马上要关机准备睡觉时,朋友发来消息,他的网站非常卡,CPU 内存都跑到了100%,重启服务器之后也不好用,希望我帮忙分析一下。
他的腾讯云AI助手给到的信息是:
CentOSXXX实例最近24小时监控数据分析结果:
关键异常发现:
严重性能危机:在12-18 23:10出现极端资源飙升
CPU利用率:从正常12%突然达到100%满载
内存使用量:从3.3GB激增至7.5GB(使用率93.7%)
系统盘读IO:爆发至69MB/s(增长近10万倍)
系统盘写IO:达到20MB/s(增长近100倍)
公网出带宽:增至8.7Mbps
正常运行基线:
CPU利用率:1.3%-23%(大部分时间在10%以下)
内存使用量:2.8-3.4GB(约35-45%使用率)
系统盘IO:读0-1KB/s,写80-300KB/s
公网带宽:出0.03-3.4Mbps,入0.006-1.1Mbps
紧急建议:
立即排查:检查23:10左右的进程和服务状态
安全扫描:可能存在恶意程序或资源攻击
临时扩容:考虑升级实例配置应对突发负载
告警设置:配置CPU/内存使用率超过80%的实时告警
日志分析:检查系统日志和应用程序日志寻找异常原因ShellScript服务器是 CentOS,我让他先运行 top M 先看下高负载进程的情况,结果是 MySQL 和 PHP 进程比较占用资源。

之后 在 MySQL 执行 show full processlist 看下数据库到底在搞什么?

通过查看网站日志:tail -n 100 /www/wwwlogs/网站域名.log
发现有大量请求指向 /wp-admin/admin-ajax.php?action=search_box 和 action=views_record。
攻击者正在利用 WordPress 的搜索功能和阅读记录功能,这两个功能都会触发深度的数据库查询。
UA(用户代理)分析:虽然它伪装成 360Spider(360 搜索爬虫),但这种高并发且针对特定 .php 接口的抓取行为,更像是披着爬虫皮的 CC 攻击或恶意采集脚本。
他的网站 PHP 配置文件是默认设置,服务器内存 8 G,我建议将 max_children 设置成 40。

之后在 robots.txt 中加入:
# 专门针对 360 爬虫的加强约束
User-agent: 360Spider
Disallow: /wp-admin/
Disallow: /?s=
Disallow: /*?action=*
Disallow: /*admin-ajax.php*
Crawl-delay: 10ShellScript在 nginx 中加入如下代码,防止恶意爬虫不遵守爬虫规则(这个是 AI 建议的):
# 定义拦截标记
set $block_360_ajax 0;
# 检查是否是 360Spider
if ($http_user_agent ~* "360Spider") {
set $block_360_ajax 1;
}
# 检查是否访问了高负载接口
# 增加一个判断,确保只有在是 360Spider 的情况下才继续判断路径
if ($request_uri ~* "admin-ajax.php|views_record|search_box") {
set $block_360_ajax "${block_360_ajax}1";
}
# 如果两个条件都满足(标记变为 11),则拦截
if ($block_360_ajax = "11") {
return 403;
}ShellScript重启 PHP 和 nginx 后,系统负载恢复正常。
最后,别忘了开启 Redis。
更多精彩内容:各种AI课程、AI技能课程、黑科技软件、网站小程序源码、副业小项目、PPT模板等精品素材、电商课程、推广引流课程等,尽在 天边资源网 。