趣味编程故事|java进程占用cpu过高怎么办,别急我来帮你
关注公众号“AI码师”领取2021最新面试资料一份
【主演】
运维小哥:小李
测试小姐姐:小红
开发人员:本色出演
【剧情】
在一个阳光明媚的清晨,原本还在睡梦中的我,被小李(运维小哥)的电话给惊醒了。
小李:线上告警出来一个问题,赶快看一下!
我:啥问题啊?
小李:xx服务器 现在cpu已经100%了,我刚才查了下是java进程占用的
我:好的,我来看下
我赶紧打开我的电脑,连接上了xx服务器,使用top 命令查了下,确实是java进程占用cpu最高,我大脑飞速旋转想到:这几天也没有对程序做什么大改动啊,怎么会出现这个问题呢;
于是我把本地代码切换到master分支,在本地跑了下发布到线上的代码,观察了一会,也没看见cpu 占用很高啊,我就很纳闷了,然后又上服务器看了下,java 进程占用cpu 还是比较高的,这是怎么回事呢?难道要拿出我的杀手锏?
接下来场面就比较血腥了,前方高能预警,系好安全带
【高能预警】
我拿出了杀手锏,江湖上失传已久的九阴真经(其实就是平时的笔记哈哈),在上面找了一些命令,然后就是接下来的场景了:
【步骤一】找到最耗cpu的进程
top
得到最占用CPU的进程为:39890
【步骤二】找到39890进程中最消耗cpu的线程
top -d 1 -Hp 39890
得到最耗CPU的进程为39900
【步骤二】将PID转换为十六进制
我们拿到了进程PID为:39900
我们需要将它转为十六进制,才能进行后续指令操作
printf “%x\n” 39900
得到结果:9bdc
【步骤三】打印当前线程的栈信息,看看它到底在干嘛
jstack 39890 | grep ‘9bdc’ -C5
现在已经找到了线程的栈信息,我看到了我自己写的代码,我用红框标记出来了
【步骤四】带着疑问去找代码
我们根据栈信息,直接在我们项目上定位到了那段代码
我发现,这里有一个死循环,我擦,忘记加休眠时间了,导致一直在死循环跑呢,终于找到问题根源了,加上了休眠时间,然后本地测试了下没问题;
关键这是线上的问题,得要赶紧上线啊,但是也得测试呢,我不得不拨通了小红(测试小姐姐)的电话,嘀。嘀。嘀。,我心里也在滴滴滴,这么早打电话给她让她测试,免不了被训,我已经做好了心里准备了,咦,通了:
小红:干啥?(测试小姐姐总是这么彪悍)
我:有有有一个小小的线上问题(说话已经开始紧张了,生怕她开骂,哈哈),我已经改好了,需要你测试下,然后抓紧上线。
小红:今天不是周末么,还要测试,让不让人睡觉了啊?
我:我我。。。,小姐姐,你长得这么可爱,美丽,端庄,温柔,贤惠,就帮忙测试下么,不然我这个月绩效又要被扣了…
小红:看你这么诚实,这次就勉强帮你测试下吧,但是下次不要在周末给我发提测了。
我:好的呢,下…(对方已经挂断了电话…)
哈哈,不管咋样,现在已经没我的事了,我合上电脑,又进入了梦乡…
全剧终
经历了一次线上bug排查,让我胆战心惊,不过这次也给我增加了不少经验,毕竟重拾了 九阴正经,让我内功又增强了;
后期会发布更多在实战方面的工作经验,与大家分享,希望大家能够喜欢,现在我需要你们的一键三连,哈哈,下期见。
趣味编程故事|java进程占用cpu过高怎么办,别急我来帮你相关推荐
- linux下查找java进程占用CPU过高原因
linux下查找java进程占用CPU过高原因 1. 查找进程 top查看进程占用资源情况 明显看出java的两个进程22714,12406占用过高cpu. 2.查找线程 使用top -H -p &l ...
- Java进程占用CPU资源过多分析
问题描述: 生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高. 问题分析: 1,程序属于CPU密集型,和开发沟通 ...
- Java程序占用 CPU 过高怎么排查
Java程序占用 CPU 过高怎么排查 线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因? 这就是一个套路题,所谓套路题就是有标准的套路解法的,掌握了套路,不仅 ...
- Windows服务器java.exe占用CPU过高问题分析及解决
原文路径:https://blog.csdn.net/ningzuobei/article/details/48828915 最近在测试一个用java语言实现的数据采集接口时发现,接口一旦运行起来,C ...
- Java进程占用内存过高,排查解决方法
Java进程占用内存过高,排查解决方法 参考文章: (1)Java进程占用内存过高,排查解决方法 (2)https://www.cnblogs.com/eeexu123/p/10913389.html ...
- memcached 如果进程占用cpu很高
memcached 如果进程占用cpu很高 一客户占用到了 25% 把mencache内存大小从32m 改成256m 后 memcached 基本占用cpu 是0 可能分配的内存不够用了 大量的新缓 ...
- vs code1.61.1 任务管理器里出现2个rg进程占用cpu很高电脑运行卡
环景: win10专业版 vs code v.1.61.1 问题描述: 任务管理器里出现2个rg进程占用cpu很高,电脑卡 解决方案: vs code软件里打开文件->首选项->设置搜se ...
- redis进程占用CPU很高-达到100
问题说明: 监控发现,redis进程占用CPU很高-达到100%.并且会有2个redis进程.如下图: 分析了一下,因为redis在持久化保存的时候,会fork出一个进程来.仔细观察进程号PID,会发 ...
- 排查解决Java进程占用内存过高
排查解决Java进程占用内存过高 1 在项目部署运行之前 1 检查JVM参数设置 2 检查代码逻辑 3 使用内存分析工具 4 检查线程 5 调整应用程序的设计 7 调整硬件资源 2 在项目部署运行之后 ...
最新文章
- Linux学习笔记8——bash基本概念
- 【LDA学习系列】M-H采样python代码
- 可视化卷及神经网络热力图
- BZOJ.1143.[CTSC2008]祭祀(Dilworth定理 最大流ISAP)
- 求和第一个算到最后一个周末求_Excel最全求和函数—sum家族系列
- Java黑皮书课后题第2章:2.5(金融应用:计算小费)编写一个程序,读入一笔费用与小费利率,计算小费和总钱数
- c语言输出去掉最后一行回车,新人提问:如何将输出时每行最后一个空格删除...
- 实现基于AD的MOSS的FORM认证方式
- python升级导致yum命令无法使用的解决办法(修改版)
- 【转】泡天涯,混论坛,你不可不知道的
- C语言-排序中的快速排序(简称快排)
- java判断一个数是不是素数_Java-判断一个数是不是素数
- Word排版插件,VSTO公文排版,Word论文排版
- 构建系统发育树(进化树)的相关知识,以及各种进化树适用的情况。
- 上传淘宝网图片获取相似商品信息
- 自适应Simpson
- 北京师范大学远程教育计算机考试时间,北京师范大学网络教育2020年报名截止时间...
- 微信小程序实践——实验3视频播放小程序
- Linux_常用的磁盘列阵(RAID)
- 2023轻薄投影仪首选:极米Z6X Pro入手超值!