当前位置: 首页 > news >正文

线上CPU 100% 全流程排查步骤

一、第一步:服务器层面定位(Linux命令,先确认是系统/应用占用)

1. 整机CPU概览

top# 实时查看整机CPU、进程占用,shift+p按CPU排序uptime# 看1/5/15分钟负载,判断瞬时冲高还是持续满载
  • 重点:%Cpu(s) us用户态、sy内核态、id空闲
    • us高:应用代码逻辑耗CPU(Java业务死循环、密集计算)
    • sy高:系统调用频繁、内核问题、频繁GC/IO阻塞、线程上下文切换爆炸
    • id≈0:CPU打满;id高但负载高:IO等待高(wa高)

2. 定位占用CPU最高的进程PID

top-H# 显示进程+所有线程,线程维度看CPUpidstat-u1# 每秒输出进程CPU占用

记下占用CPU最高PID(假设PID=1234,Java进程)。

二、第二步:Java进程内部 → 哪个线程耗CPU(核心经典步骤)

1. 导出Java进程所有线程栈

  1. 拿到高CPU进程PID:jps -l列出所有Java进程
  2. top -Hp 1234查看该进程下CPU最高的线程TID(十进制)
  3. 十进制TID转十六进制:printf "%x\n 线程TID"(例:12345 → 0x3039)
  4. 打印线程堆栈:
jstack1234>jstack.log# 或arthas一键:thread -n 5
  1. 在jstack.log搜索十六进制0x3039,找到对应线程栈,直接定位代码行。

高频问题:死循环、无限while、大数据量循环遍历、正则回溯、频繁创建对象。

三、第三步:区分是【代码业务耗CPU】还是【GC疯狂消耗CPU】

1. 查看GC指标

jstat-gcPID1000# 每秒打印GC,S0/S1/Eden/O/M,YGC/FGC次数与耗时

判断:

  1. YGC频繁暴涨、FGC频繁、Full GC耗时高 → GC导致CPU100%
    原因:内存泄漏、大对象频繁创建、堆太小、不合理大内存分配。
  2. GC次数正常 → 业务代码逻辑占用CPU(死循环/密集运算)

2. 堆快照排查内存泄漏

jmap-dump:format=b,file=heap.hprof PID

heap文件下载后用MAT/JProfiler分析:大对象、泄漏对象、不合理缓存。

四、第四步:Arthas一键排查(线上首选,不用重启服务)

# 1. 安装启动curl-Ohttps://arthas.aliyun.com/arthas-boot.jar&&java-jararthas-boot.jar# 2. 找出CPU最高5个线程thread-n5# 3. 查看方法耗时(定位热点方法)profiler start;sleep30;profiler stop--formathtml

profiler生成火焰图:横向越长代表CPU占用越高,直接定位耗CPU方法。

五、第五步:补充系统侧异常排查

  1. 上下文切换过高vmstat 1cs列飙升 → 大量线程频繁切换(线程池不合理、自旋锁滥用)
  2. 软中断高cat /proc/softirqs网卡中断暴高 → 网络流量打满、大量连接
  3. 磁盘IO拉高CPUiostat -x 1 %iowait高,大量同步刷盘、频繁落库。

六、常见根因汇总

  1. 业务代码:死循环、嵌套循环、全表循环遍历、低效正则、大数循环计算
  2. GC问题:内存泄漏、超大对象、堆参数过小、频繁创建短命大对象
  3. 框架/中间件:连接池参数不合理、死锁自旋、定时任务密集调度
  4. 系统:大量TCP连接、磁盘爆满刷盘、内核bug

七、应急临时处理

  1. 紧急下线定时任务/流量降级,切流量;
  2. 临时重启实例(集群环境优先一台重启保可用);
  3. 临时调大堆参数缓解GC。
http://www.rkmt.cn/news/1468433.html

相关文章:

  • AI辅助开发智能香薰:让快马AI生成情景联动与自适应推荐代码
  • 2026海口二手奢侈品包包回收避坑测评|行业套路拆解+正规机构添价收实测参考 - 薛定谔的梨花猫
  • 成都翡翠鉴定评估对比:5大回收品牌谁更专业? - 开心测评
  • 从零制作固态特斯拉线圈:Slayer激励器电路解析与高压电子实践
  • 小程序开发公司推荐:2026年十家常被提及的小程序制作开发公司 - 维双云小凡
  • 别再只用GCN了!用PyTorch Geometric实现DGCN处理有向图(附代码)
  • 2026临武贵金属奢侈品回收指南:郴奢汇临武店领衔,合规资质+全品类服务成核心推荐 - 小仙贝贝
  • 2026年 压铸/铝合金压铸/精密压铸/压铸模具/汽车压铸厂家推荐:覆盖高压压铸与中大件外壳加工的实力品牌精选 - 企业推荐官【官方】
  • 基于Arduino的北斗七星LED灯:从开源项目改造到星空模拟
  • MySQL 慢查询定位,与 EXPLAIN 执行计划深度解析
  • HOI研究入门:如何利用HICO/HICO-Det的600类行为列表设计你的第一个模型
  • 告别32位烦恼:手把手教你用MX Component Version5在64位Win10/Win11上连接三菱PLC
  • 废旧铅酸电池改造:DIY可调电源的工程实践与原理详解
  • 大模型预训练数据工程:低质量文本启发式过滤算法优化路径
  • ssm226基于jsp的快递管理系统的开发+jsp(文档+源码)_kaic
  • 基于低功耗设计与混沌算法的真随机数生成硬件实践
  • 2026广州黄金回收真实测评|主流渠道优劣解析,普通人变现必看 - 奢侈品回收评测
  • AI 的物理觉醒:从“数字大脑”到“具身智能”
  • 电子行业付款风险解析:从账期、承兑汇票到供应链博弈的生存指南
  • 效率提升秘籍:利用快马平台与trae优化前端应用状态管理流程
  • 专业指南:在M1 Mac上高效运行Android模拟器的实战方案
  • 全覆盖选购攻略:六大全自动凯氏定氮仪品牌测评+场景适配方案 - 品牌推荐大师1
  • MASA模组全家桶汉化包:打破语言壁垒,畅享Minecraft顶级工具模组
  • 如何永久免费使用AI编程助手:3步搞定Cursor Pro激活
  • TCP端口内网穿透教程
  • Adobe GenP 3.0终极指南:如何免费解锁Adobe全家桶完整功能
  • 视频转 GIF 优质小程序汇总,多款免费转换工具测评盘点大全 - 软件工具教程方法
  • 旧首饰闲置贬值太可惜!长沙靠谱回收渠道分享 - 奢侈品回收测评
  • 3分钟永久解锁IDM:免费激活脚本的终极解决方案
  • Minueza-32M-Base-openmind部署教程:NPU与CPU环境下的最佳实践