Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >cpu占用过高排查

cpu占用过高排查

作者头像
iginkgo18
修改于 2021-05-14 07:17:05
修改于 2021-05-14 07:17:05
2.5K00
代码可运行
举报
文章被收录于专栏:devops_k8sdevops_k8s
运行总次数:0
代码可运行
简介

最近一段时间 某台服务器上的一个应用总是隔一段时间就自己挂掉 用top看了看 从重新部署应用开始没有多长时间CPU占用上升得很快

排查步骤
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 1.使用top 定位到占用CPU高的进程PID
top

# 2.通过ps aux | grep PID命令
获取线程信息,并找到占用CPU高的线程
ps -mp pid -o THREAD,tid,time | sort -rn

# 3.将需要的线程ID转换为16进制格式
printf "%x\n" tid

# 4.打印线程的堆栈信息 到了这一步具体看堆栈的日志来定位问题了
jstack pid |grep tid -A 30
案例

1.top可以看到PID733进程的占用172%

2.查找进程733下的线程 可以看到TID 线程775占用了96%且持有了很长时间 其实到这一步基本上能猜测到应该是 肯定是那段代码发生了死循环

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ps -mp 733 -o THREAD,tid,time | sort -rn

3.线程ID转换为16进制格式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
printf "%x\n" 775

3333

4.查看java的堆栈信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jstack 733 |grep 307 -A 30

444

5555

显然是 SmsQueueServiceImpl 中的produceMissSms 和 consumeMissSms 方法有问题

最后注释掉那段循环代码,cpu占用就正常了,也有可能是因为频繁GC导致CPU占用过高

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java 一次CPU占用过高问题的排查及解决
最近一段时间  某台服务器上的一个应用总是隔一段时间就自己挂掉      用top看了看  从重新部署应用开始没有多长时间CPU占用上升得很快  
江湖前辈黄药师
2018/08/27
8990
java  一次CPU占用过高问题的排查及解决
CPU占用过高排查
最近一段时间 某台服务器上的一个应用总是隔一段时间就自己挂掉 用top看了看 从重新部署应用开始没有多长时间CPU占用上升得很快
陈不成i
2021/05/24
4.3K0
面试篇:如何排查cpu占用过高?
可以看到tid为514线程,使用cpu最高。这边只有单线程的一个程序,为了看排查流程。
伊泽瑞尔
2022/06/01
8120
面试篇:如何排查cpu占用过高?
CPU 占用过高问题排查
2、找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照CPU占用高的线程排序:
王小明_HIT
2020/04/21
2.7K0
CPU 占用过高问题排查
CPU 飙升排查
代码很简单 接口1“/hello” 返回“hello World”,接口2“/run” 进入死循环,这样就保证了访问接口2cpu升高。
AlphaHinex
2024/04/08
1300
CPU 飙升排查
记一次 JVM CPU 使用率飙高问题的排查过程
如上图所示,在 下午3:45 分之前,CPU 的使用率明显飙高,最高飙到近 100%,为什么会出现这样的现象呢?
CG国斌
2020/04/14
5.4K0
记一次 JVM CPU 使用率飙高问题的排查过程
CPU飙高问题排查
CPU飙高时,基本就是三板斧就可以找到具体占用CPU的线程信息,这样,你就看到CPU这么高,是什么线程在捣乱了!
程序猿玄微子
2020/11/30
1.6K0
Java程序 内存分析
最近因为太忙,时间不够,导致长时间没写笔录,没有好好去总结自己,很不应该,要调整回来。
Blue_007
2023/10/21
3320
Java程序 内存分析
生产环境出现CPU占用过高,如何排查?
2.ps-ef或者jps-l进一步定位,得知是一个怎么样的一个后台程序给我们惹事
名字是乱打的
2022/05/13
8100
生产环境出现CPU占用过高,如何排查?
Linux CPU负载过高排查方法
问:如何定位是哪个服务进程导致CPU过载,哪个线程导致CPU过载,哪段代码导致CPU过载?
用户5760343
2019/11/03
3.4K0
2020-12-30:生产环境 CPU 占用过高,你如何解决?
3.jstack -l > threads.txt,导出进程的线程栈信息到文本,导出出现异常的话,加上 -F 参数。
福大大架构师每日一题
2020/12/30
4360
记一次 JVM CPU 使用率飙高问题的排查过程
如上图所示,在 下午3:45 分之前,CPU 的使用率明显飙高,最高飙到近 100%,为什么会出现这样的现象呢?
CG国斌
2022/05/06
1.8K0
记一次 JVM CPU 使用率飙高问题的排查过程
cpu使用率过高和jvm old占用过高排查过程
占用cpu过高的线程有两个,其中一个是打印异常日志的(会new 对象),还有gc线程
每天晒白牙
2020/08/21
2.7K0
cpu使用率过高和jvm old占用过高排查过程
JVM故障分析及性能优化实战(I)——使用jstack定位线程堆栈信息
前一段时间上线的系统升级之后,出现了严重的高CPU的问题,于是开始了一系列的优化处理之中,现在将这个过程做成一个系列的文章。
IT技术小咖
2019/09/25
1.9K0
JVM故障分析及性能优化实战(I)——使用jstack定位线程堆栈信息
线上应用故障排查之一:高CPU占用
(友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hankchen)
爱撸猫的杰
2019/03/28
1.4K0
服务器常见问题排查(一)——CPU占用高、上下文频繁切换、频繁GC
该命令将显示包含nid的堆栈信息。注意,这里使用了grep命令来过滤输出结果,只显示包含nid的部分。-C5表示在匹配项前后各显示5行上下文信息,--color则用于在输出中添加颜色标记。
遥遥知识库
2023/10/26
1.3K1
服务器常见问题排查(一)——CPU占用高、上下文频繁切换、频繁GC
java程序CPU占用过高(100%)解决思路和解决方案
小土豆Yuki
2023/10/25
2.5K0
java程序CPU占用过高(100%)解决思路和解决方案
CPU占用过高定位?
在常见的面试的过程中,面试官都会问你一下常用的的linux命令,如果一上的来就说一些 cd.. , cp ls , vi, mkdir, rm -rf 什么的是没错的但是这些常用的命令说出去就显示不出你的优势,但凡是用过linux的都会这几个常用的命令,所以要突出自己的优势可以了解一些更深入的linux命令。
技术从心
2019/08/06
2.5K0
CPU占用过高定位?
体验了一把线上CPU100%及应用OOM的排查和解决过程
项目中默认使用 spring-cloud-sleuth-zipkin 依赖得到 zipkin-reporter。分析的版本发现是 zipkin-reporter版本是 2.7.3 。
全栈程序员站长
2022/07/20
5170
体验了一把线上CPU100%及应用OOM的排查和解决过程
记一次线上Java程序导致服务器CPU占用率过高的问题排除过程
使用top命令查看资源占用情况,发现pid为14063的进程占用了大量的CPU资源,CPU占用率高达776.1%,内存占用率也达到了29.8%
会跳舞的机器人
2018/09/21
2.2K0
记一次线上Java程序导致服务器CPU占用率过高的问题排除过程
推荐阅读
相关推荐
java 一次CPU占用过高问题的排查及解决
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验