加油
努力

如何排查腾讯云轻量服务器CPU资源被占满的问题?

当腾讯云轻量应用服务器出现 CPU 使用率持续 100% 的情况时,可以按照以下系统化的方法进行排查和解决:


一、初步确认问题

  1. 登录腾讯云控制台

    • 进入【轻量应用服务器】控制台。
    • 查看目标实例的监控图表(CPU 使用率)是否确实长时间处于高位。
  2. 确认是否为瞬时高峰还是持续占用

    • 如果是短时间峰值,可能是正常业务波动。
    • 若持续 >80%,需进一步排查。

二、登录服务器进行诊断

使用 SSH 登录服务器(如 Linux 系统):

ssh root@your-server-ip

1. 使用 top 命令查看实时进程

top
  • P(大写)按 CPU 使用率排序。
  • 观察哪些进程占用了大量 CPU。
  • 记下进程 PID、用户、命令名。

示例输出中重点关注 %CPU 列。

2. 使用 htop(更直观,可选安装)

# 安装 htop(Ubuntu/Debian)
sudo apt update && sudo apt install htop -y
# 或 CentOS/RHEL
sudo yum install htop -y

htop

支持颜色显示、鼠标操作,更容易识别高负载进程。

3. 使用 ps 命令快速查看高 CPU 进程

ps aux --sort=-%cpu | head -10

列出 CPU 占用最高的前 10 个进程。


三、常见原因及应对措施

1. Web 服务或应用过载(如 Nginx、Apache、Node.js、Python)

  • 检查访问量是否突增(如被爬虫、DDoS 攻击)。
  • 查看 Web 日志是否有异常请求:
# Nginx 日志
tail -f /var/log/nginx/access.log
# 查看高频 IP
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20
  • 解决方案:
    • 限制访问频率(Nginx 配置限流)。
    • 使用防火墙屏蔽恶意 IP。
    • 升级服务器配置或启用 CDN。

2. 恶意程序或X_X病毒

常见表现:

  • 进程名奇怪(如 kdevtmpfsi, xmrig, systemd 异常路径)。
  • CPU 持续 100%,但无明显合法服务对应。

排查步骤:

# 查找可疑进程
ps aux | grep -E "(miner|cryptonight|xmrig|kdevtmpfsi)"

# 查看定时任务(可能用于持久化)
crontab -l
sudo crontab -l
ls /etc/cron.d/

# 检查异常启动项和服务
systemctl list-unit-files --type=service | grep enabled

处理方法:

  • 终止可疑进程:kill -9 PID
  • 删除相关文件(通常在 /tmp/dev/shm/root/.ssh 下)
  • 清理 cron 任务
  • 安装安全工具扫描(如 ClamAVrkhunter

推荐使用腾讯云自带的 云镜(主机安全) 功能检测木马。

3. 数据库负载过高(如 MySQL、Redis)

  • 检查数据库连接数、慢查询:
# MySQL 查看进程
mysql -u root -p -e "SHOW PROCESSLIST;"
# 查看慢查询日志
grep "Query_time" /var/log/mysql/slow.log
  • 优化建议:
    • 添加索引。
    • 限制最大连接数。
    • 开启缓存(如 Redis)。

4. 计划任务或脚本异常

  • 检查是否有脚本无限循环或频繁执行:
# 查看所有用户的 cron 任务
for user in $(cut -f1 -d: /etc/passwd); do echo "Crontab for $user:"; crontab -u $user -l 2>/dev/null; done
  • 检查最近修改的脚本:
find /home /root /opt -name "*.sh" -type f -mtime -7 -exec ls -la {} ;

四、系统级优化与监控

1. 安装监控工具(如 netdataglances

# 安装 glances
sudo apt install python3-pip -y
sudo pip3 install glances
glances

2. 设置告警(可结合腾讯云告警服务)

  • 在控制台设置 CPU 使用率超过 80% 时发送微信/邮件告警。

五、临时缓解与长期建议

措施 说明
kill 高 CPU 进程 临时释放资源
重启服务器 快速恢复(谨慎操作)
升级轻量服务器配置 如从 1C1G 升到 2C4G
迁移至 CVM + 负载均衡 适合高并发业务

六、预防建议

  1. 定期更新系统和软件:避免漏洞被利用。
  2. 关闭不必要的端口和服务:减少攻击面。
  3. 启用腾讯云防火墙:限制 SSH、数据库等端口访问。
  4. 备份重要数据:防止中毒后无法恢复。
  5. 使用主机安全产品:如腾讯云云镜,自动查杀木马。

总结排查流程图

CPU 持续 100%
   ↓
使用 top/htop 查看高占用进程
   ↓
判断是合法服务 or 恶意程序
   ├─ 合法服务 → 优化代码、限流、扩容
   └─ 恶意程序 → 杀进程、删文件、清 cron、加固系统
   ↓
监控 + 告警 + 定期巡检

如果你提供具体的进程名称或日志片段,我可以进一步帮你分析具体原因。

云服务器