Hong Kong Server High CPU Usage: 5 Common Causes and Fixes
发布时间:2026-10-27
香港服务器出现 CPU 占用高、负载飙升或 CPU 跑满时,网站会变慢甚至无响应。下面整理 5 个常见问题,先定位再处理。
问题一:某个业务进程长期占满单核
- 表现:
top里单个进程 CPU 长期 100% 以上,其余进程正常。 - 可能原因:死循环、正则或 JSON 解析过重、缓存失效后回源集中。
- 排查步骤:
top -H -p <PID>找出线程,perf top -p <PID>看热点函数。 - 快速修复:回滚最近发布,限制并发,对热点接口加缓存。
问题二:负载很高但 CPU 空闲,iowait 偏高
- 表现:负载很高,
top里wa超过 20%。 - 可能原因:磁盘读写饱和、日志刷盘过多、数据库临时表落盘。
- 排查步骤:
iostat -x 1 5看%util与await,iotop -oPa找出写盘进程。 - 快速修复:降低日志级别,调大数据库缓冲池,把临时目录和日志放到独立 NVMe 盘。
问题三:不明进程占满 CPU,疑似被入侵
- 表现:出现名称随机的进程,CPU 接近全满,且对外连接异常。
- 可能原因:弱口令被爆破、Web 漏洞被利用后植入挖矿程序。
- 排查步骤:
ps aux --sort=-%cpu | head,ss -antp看外连,crontab -l与/etc/cron.*查定时任务,last查登录记录。 - 快速修复:结束进程并删除落地文件与定时任务,修改所有口令,SSH 改密钥登录,更新漏洞组件;严重时备份数据后重装系统。
问题四:数据库慢查询导致 CPU 飙升
- 表现:
mysqldCPU 占用高,页面时快时慢。 - 可能原因:缺少索引、全表扫描、连接数暴涨。
- 排查步骤:开启
slow_query_log,设置long_query_time=1,用EXPLAIN分析慢 SQL。 - 快速修复:为过滤和排序字段补索引,限制单次查询范围。
问题五:CC 攻击或恶意爬虫请求激增
- 表现:访问日志里同一类 URL 请求暴增,
php-fpm或nginx占满 CPU。 - 可能原因:CC 攻击、爬虫未限速、登录接口被撞库。
- 排查步骤:
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head统计来源 IP 与 URL。 - 快速修复:Nginx 配置
limit_req_zone限速,封禁异常来源,接入 CDN 或高防开启 CC 防护。
处理后建议配置告警:CPU 持续 5 分钟超过 80% 即通知。