You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu服务器高负载排查求助:CPU占用极高但Google Analytics无流量

Ubuntu服务器高负载排查求助:CPU占用极高但Google Analytics无流量

看了你的top输出,确实有点反常——CPU直接拉满(90%都在用户态),一堆php-fpm8.1进程在疯狂跑,但Google Analytics却没记录到流量。给你几个接地气的排查方向,一步步来揪出问题:

  • 先查Web服务器访问日志,看透所有请求
    GA是前端埋点,像爬虫、API接口请求、内网访问、或者没加载GA脚本的页面请求,都不会被GA统计,但这些请求都会实打实让php-fpm干活。直接去看Nginx/Apache的访问日志(比如Nginx的/var/log/nginx/access.log,Apache的/var/log/apache2/access.log),里面能看到所有请求的IP、路径、状态码,一眼就能知道是不是有大量未被GA统计的请求在消耗资源。

  • 统计异常IP,排查爬虫/恶意扫描
    如果日志里有大量重复IP的请求,大概率是爬虫或者暴力扫描。可以用这个命令快速统计IP请求次数:

    awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
    

    排名靠前的IP如果请求量极大,基本就是问题来源,后续可以用防火墙规则封禁。

  • 检查php-fpm的连接和进程状态
    用ss -tulnp | grep php-fpm或者netstat -anp | grep php-fpm,看看php-fpm进程连接的客户端IP和端口,确认这些请求是来自公网、内网还是本地。另外也可以用ps aux | grep php-fpm | wc -l统计当前php-fpm的总进程数,对比你php-fpm配置(比如/etc/php/8.1/fpm/pool.d/www.conf)里的pm.max_children参数,看看是不是进程数超标导致CPU争抢。

  • 排查MySQL的负载瓶颈
    你的mariadbd进程CPU占用也达到了32.6%,很可能php-fpm进程都在等数据库返回结果。可以用mysqladmin -u root -p processlist查看当前数据库的活跃查询,有没有慢查询、锁表或者批量数据操作拖慢了整个服务,必要时开启慢查询日志(slow_query_log = 1)记录耗时久的查询。

  • 追踪单个高CPU的php-fpm进程
    挑一个CPU占比较高的php-fpm PID(比如top里的29075),用strace -p 29075追踪它的系统调用,看看它到底在做什么——是在读写文件、访问数据库,还是在进行网络通信,这能精准定位到进程的具体操作。

  • 检查内部定时任务
    看看有没有用户级或系统级的定时任务在后台跑,比如crontab -l查看当前用户的cron任务,ls /etc/cron.d/、cat /etc/crontab查看系统级任务,说不定是某个批量处理数据的脚本调用了PHP,导致php-fpm进程激增。

先从访问日志入手最直接,毕竟GA看不到的请求全藏在日志里,大概率能快速找到根源!

备注:内容来源于stack exchange,提问作者Crypto Coupons

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 13:04:09