首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
芋圆也有烦恼
北京航空航天大学 Java
发布于北京
关注
已关注
取消关注
.
@搬山道猿:
面试官:应用上线后Cpu使用率飙升如何排查?
上次面试官问了个问题:应用上线后Cpu使用率飙升如何排查?其实这是个很常见的问题,也非常简单,那既然如此我为什么还要写呢?因为上次回答的时候我忘记将线程PID转换成16进制的命令了。所以我决定再重温一遍这个问题,当然贴心的我还给大家准备好了测试代码,大家可以实际操作一下,这样下次就不会忘记了。模拟一个高CPU场景public class HighCpuTest { public static void main(String[] args) { List<HignCpu> cpus = new ArrayList<>(); Thread highCpuThread = new Thread(()->{ int i = 0; while (true){ HignCpu cpu = new HignCpu("Java日知录",i); cpus.add(cpu); System.out.println("high cpu size:" + cpus.size()); i ++; } }); highCpuThread.setName("HignCpu"); highCpuThread.start(); }}复制代码在main方法中开启了一个线程,无限构建HighCpu对象。@Data@AllArgsConstructorpublic class HignCpu { private String name; private int age;}复制代码准备好上面的代码,运行HighCpuTest,然后就可以开始一些列的操作来发现问题原因了。排查步骤第一步,使用 top 找到占用 CPU 最高的 Java 进程1. 监控cpu运行状,显示进程运行信息列表top -c2. 按CPU使用率排序,键入大写的PP复制代码第二步,用 top -Hp 命令查看占用 CPU 最高的线程上一步用 top命令找到了那个 Java 进程。那一个进程中有那么多线程,不可能所有线程都一直占着 CPU 不放,这一步要做的就是揪出这个罪魁祸首,当然有可能不止一个。执行top -Hp pid命令,pid 就是前面的 Java 进程,我这个例子中就是 16738 ,完整命令为:top -Hp 16738,然后键入P (大写p),线程按照CPU使用率排序执行之后的效果如下查到占用CPU最高的那个线程 PID 为 16756第三步,查看堆栈信息,定位对应代码通过printf命令将其转化成16进制,之所以需要转化为16进制,是因为堆栈里,线程id是用16进制表示的。(我当时就是忘记这个命令了~)[root@review-dev ~]# printf "%x\n" 167564174复制代码得到16进制的线程ID为4174。通过jstack命令查看堆栈信息jstack 16738 | grep '0x4174' -C10 --color复制代码如上图,找到了耗CPU高的线程对应的线程名称“HighCpu”,以及看到了该线程正在执行代码的堆栈。最后,根据堆栈里的信息,定位到对应死循环代码,搞定。小结cpu使用率飙升后如何排查这个问题不仅面试中经常会问,而且在实际工作中也非常有用,大家最好根据上述步骤实际操作一下,这样才能记得住记得牢。
点赞 93
评论 8
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
12-12 20:58
浙江中医药大学 算法工程师
求前辈指点
我是一位双非大一学生,目前学的是医学信息工程,专业也有在学编程打算转入计算机专业,想问一下各位学长学姐或者在工作的前辈我先在往哪个方向学习会相对压力小一点,适配岗位多一点,听说现在Java很卷c++又太难,有点迷茫不知道,想请各位前辈指点一下,坐标杭州
点赞
评论
收藏
分享
今天 14:35
浙江大学 Java
说说你了解的JVM内存模型
图解JVM-牛客面经八股
点赞
评论
收藏
分享
11-18 17:32
门头沟学院 Web前端
字节hr面,说不能让我实习太久..怎么选
目前有百度 base 北京offer 拒了字节这个hr面,跟我说明年的实习生hc不多,可能只能让我实习两到三个月,而且貌似表现出来的意思是要我进去快速上手开发。目前还有,美团,腾讯,阿里,快手,小红书的在推进。不知道字节这个要不要去。大佬们怎么看,base北京tag,字节,腾讯,美团,阿里
szxc:
几个月走了你不是正好找暑期
投递字节跳动等公司7个岗位
点赞
评论
收藏
分享
11-03 12:40
中山大学 Java
秋招开始释放意向了
虽然还没开奖,但是有一些就算开多少也不准备考虑了,早早提前释放了,万一以后社招留点后路。
勇敢的突尼斯海怪选钝...:
楼主这拒意向话术好得体呀 !求问HR回复态度咋样呀
点赞
评论
收藏
分享
今天 18:04
门头沟学院 Java
秋招结果一览
秋招offer: 双9无实习京东offer 双非本9硕无实习招银网络offer 2本9硕非科班科大讯飞offer 双非本2硕小厂实习招银云创offer、收钱吧offer 2本9硕无实习联通数科offer 2本9硕非科班无实习小鹅通offer、新华三offer 本硕双2无实习满帮offer 9本无实习金证offer 9本海硕无实习携程sp、小红书offer、群核科技offer、途虎ssp、科大讯飞ssp 2本无实习梧桐车联offer 2本9硕非科班小厂实习招银云创offer、东软offer 9本华五硕无实习招银网络offer、小米offer 9本无实习卓望数码offer、帆软最高档sp、老虎国际...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
1
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
勇气与抉择
2.7W
2
...
2025年12月16日 多年之后 我又梦到那天
1.3W
3
...
拼多多开奖了
9684
4
...
双非本硕客户端总结/经验贴
6456
5
...
被mt骂了怎么办
5005
6
...
单9机械结构硕的求职大结局
4445
7
...
有些事真是只有工作了才知道。。
4442
8
...
为什么上班这么痛苦?其实无非这四种内耗
4050
9
...
关于双非找实习的一个暴论
3936
10
...
入职大厂坦白局
3332
创作者周榜
更多
正在热议
更多
#
mt对你说过最有启发的一句话
#
12646次浏览
165人参与
#
打工人的精神状态
#
121063次浏览
1402人参与
#
秋招被挂春招仍然能投的公司
#
1992次浏览
27人参与
#
找工作有哪些冷知识
#
200772次浏览
2560人参与
#
什么是优秀的实习经历
#
2899次浏览
115人参与
#
市场营销人求职交流聚集地
#
165656次浏览
1227人参与
#
提前批过来人的忠告
#
142092次浏览
1326人参与
#
滴滴求职进展汇总
#
286011次浏览
2386人参与
#
携程求职进展汇总
#
830913次浏览
5322人参与
#
来聊聊你目前的求职进展
#
701653次浏览
6955人参与
#
职场新人体验
#
155040次浏览
1118人参与
#
今年秋招你收到了多少封邮件?
#
9051次浏览
132人参与
#
工作中遇到的歹人
#
12842次浏览
185人参与
#
考研失败就一定是坏事吗?
#
163943次浏览
1201人参与
#
秋招特别不鸣谢
#
5903次浏览
83人参与
#
摸鱼被leader发现了怎么办
#
80382次浏览
501人参与
#
选实习,你更看重哪方面?
#
5282次浏览
113人参与
#
被上班搭子“传染”了哪些习惯
#
2653次浏览
68人参与
#
重来一次,我还会选择这个专业吗
#
392586次浏览
3876人参与
#
实习简历求拷打
#
564次浏览
17人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务