首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
03-29 15:20
门头沟学院 测试开发
字节测试开发-数据平台部门一面凉经
自我介绍手撕:最长无重复字符的子序列(经典,字节最高频的一道题)询问上段实习为何离职针对简历上图片评测相关的工作讲解一下数据集清洗、打标怎么做的构建benchmark的标准有哪些?讲解一下基于agent skill做ui自动化的细节讲解一下一个需求完整的开发到上线流程。线上出问题是怎么解决的?第二段实习中代码行覆盖率怎么做的,有调用外部工具吗?反问:多久出后续。
点赞
评论
收藏
分享
03-30 16:03
北京大学 算法工程师
企业微信支持CLI开源
1.企业微信CLI3月29日,企业微信 CLI 开源项目上架 Github 社区,开放企业微信消息、日程、文档、智能表、会议、待办、通讯录等核心产品能力,支持主流 AI Agent调用。下载地址:GitHub2.CLI可使用的能力3.如何安装使用CLI3.1 前提环境要求:Node.js(npm/npx)创建并获取长连接方式机器人的 Bot ID 和 Secret3.2 安装安装 CLInpm install -g @wecom/cli安装 CLI SKILL(必需)npx skills add WeComTeam/wecom-cli -y -g3.3 快速开始配置企业微信机器人凭证(交互式,...
点赞
评论
收藏
分享
02-25 16:52
门头沟学院 Java
27后端简历求拷打
菜鸡求拷打,最近想找一段暑期或者日常实习,hot100目前还在二刷,八股看了一半,去年找了一段小厂实习,干了两个月太水了就提前离职了,期间做了个玩具项目,甚至都没有上线,包装一下就写进简历了,把原来的外卖替换掉了,另一个是点评,今天下午ssob沟通了一百多,有要简历的但是之后就已读不回了,求各位大佬指点
找工作的小源1:
学历加粗放大
点赞
评论
收藏
分享
02-25 19:38
门头沟学院 Java
学院本两段实习秋招0面试
求求大佬们帮忙看看简历,心态已经被磨平了,感觉自己简历问题比较大,但是不知道怎么下手改。马上要春招了,好迷茫。。。
黑皮白袜臭脚体育生:
实习经历里技术提升这个写法太抽象了
改成项目亮点观感会更好
点赞
评论
收藏
分享
昨天 11:04
门头沟学院 Java
何意味
字节从3月13号锁简历到现在,也不约面,也不释放,导致ssob上其他hr说有处于流程中。我真生气了
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
1
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
我放弃互联网大厂了。。
3513
2
...
Vibe Coding开发前的 7 个关键步骤
3206
3
...
字节实习一、二、三、HR面面经
2717
4
...
双非前端字节一面面经(难度 plus ultra 版)
2374
5
...
我招了!当年就是被招行这么招进去的
1771
6
...
京东零售平台产品与研发中心一面
1543
7
...
如何把面试主动权握在手里?Ai岗面试焚诀!
1352
8
...
美团暑期二面
1347
9
...
美团后端暑期实习一面
1338
10
...
在工作中,如何正确使用vibe coding来增效?
1324
创作者周榜
更多
正在热议
更多
#
你觉得大几开始实习最合适?
#
9292次浏览
89人参与
#
实习生的蛐蛐区
#
921346次浏览
4698人参与
#
厦门银行科技岗值不值得投
#
12768次浏览
306人参与
#
你见过哪些招聘隐形歧视?
#
6530次浏览
64人参与
#
毕业季等于分手季吗
#
59262次浏览
680人参与
#
面试被问到不会的问题,你怎么应对?
#
8569次浏览
69人参与
#
开放七大实习专项,百度暑期实习值得冲吗
#
28568次浏览
529人参与
#
面试吐槽bot
#
182170次浏览
865人参与
#
好好告别我的学生时代
#
138144次浏览
1554人参与
#
25届秋招公司红黑榜
#
328697次浏览
1292人参与
#
小厂实习有必要去吗
#
87340次浏览
417人参与
#
租房前辈的忠告
#
380302次浏览
7491人参与
#
你都用vibe coding做过什么?
#
3759次浏览
157人参与
#
做完笔试后你收到面试了吗?
#
9038次浏览
81人参与
#
Vibe Coding 会干掉初级岗位吗?
#
7608次浏览
129人参与
#
实习转正进行时
#
168358次浏览
1064人参与
#
AI Coding实战技巧
#
2832次浏览
75人参与
#
你现在一天AI几次?
#
2635次浏览
57人参与
#
牛友の3月总结
#
13064次浏览
120人参与
#
如果人生可以debug你会改哪一行?
#
3462次浏览
73人参与
#
大厂实习和小厂实习最大的区别是什么?
#
17125次浏览
111人参与
#
百度工作体验
#
319680次浏览
2239人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务