关注公众号“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过高怎么办,别急我来帮你相关推荐

  1. linux下查找java进程占用CPU过高原因

    linux下查找java进程占用CPU过高原因 1. 查找进程 top查看进程占用资源情况 明显看出java的两个进程22714,12406占用过高cpu. 2.查找线程 使用top -H -p &l ...

  2. Java进程占用CPU资源过多分析

    问题描述: 生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高. 问题分析: 1,程序属于CPU密集型,和开发沟通 ...

  3. Java程序占用 CPU 过高怎么排查

    Java程序占用 CPU 过高怎么排查 线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因? 这就是一个套路题,所谓套路题就是有标准的套路解法的,掌握了套路,不仅 ...

  4. Windows服务器java.exe占用CPU过高问题分析及解决

    原文路径:https://blog.csdn.net/ningzuobei/article/details/48828915 最近在测试一个用java语言实现的数据采集接口时发现,接口一旦运行起来,C ...

  5. Java进程占用内存过高,排查解决方法

    Java进程占用内存过高,排查解决方法 参考文章: (1)Java进程占用内存过高,排查解决方法 (2)https://www.cnblogs.com/eeexu123/p/10913389.html ...

  6. memcached 如果进程占用cpu很高

    memcached 如果进程占用cpu很高 一客户占用到了 25% 把mencache内存大小从32m 改成256m 后 memcached 基本占用cpu 是0 可能分配的内存不够用了  大量的新缓 ...

  7. vs code1.61.1 任务管理器里出现2个rg进程占用cpu很高电脑运行卡

    环景: win10专业版 vs code v.1.61.1 问题描述: 任务管理器里出现2个rg进程占用cpu很高,电脑卡 解决方案: vs code软件里打开文件->首选项->设置搜se ...

  8. redis进程占用CPU很高-达到100

    问题说明: 监控发现,redis进程占用CPU很高-达到100%.并且会有2个redis进程.如下图: 分析了一下,因为redis在持久化保存的时候,会fork出一个进程来.仔细观察进程号PID,会发 ...

  9. 排查解决Java进程占用内存过高

    排查解决Java进程占用内存过高 1 在项目部署运行之前 1 检查JVM参数设置 2 检查代码逻辑 3 使用内存分析工具 4 检查线程 5 调整应用程序的设计 7 调整硬件资源 2 在项目部署运行之后 ...

最新文章

  1. Linux学习笔记8——bash基本概念
  2. 【LDA学习系列】M-H采样python代码
  3. 可视化卷及神经网络热力图
  4. BZOJ.1143.[CTSC2008]祭祀(Dilworth定理 最大流ISAP)
  5. 求和第一个算到最后一个周末求_Excel最全求和函数—sum家族系列
  6. Java黑皮书课后题第2章:2.5(金融应用:计算小费)编写一个程序,读入一笔费用与小费利率,计算小费和总钱数
  7. c语言输出去掉最后一行回车,新人提问:如何将输出时每行最后一个空格删除...
  8. 实现基于AD的MOSS的FORM认证方式
  9. python升级导致yum命令无法使用的解决办法(修改版)
  10. 【转】泡天涯,混论坛,你不可不知道的
  11. C语言-排序中的快速排序(简称快排)
  12. java判断一个数是不是素数_Java-判断一个数是不是素数
  13. Word排版插件,VSTO公文排版,Word论文排版
  14. 构建系统发育树(进化树)的相关知识,以及各种进化树适用的情况。
  15. 上传淘宝网图片获取相似商品信息
  16. 自适应Simpson
  17. 北京师范大学远程教育计算机考试时间,北京师范大学网络教育2020年报名截止时间...
  18. 微信小程序实践——实验3视频播放小程序
  19. Linux_常用的磁盘列阵(RAID)
  20. 2023轻薄投影仪首选:极米Z6X Pro入手超值!

热门文章

  1. 芋道 Spring Cloud Alibaba 介绍
  2. 【Python自动化测试8】流程控制语句讲解
  3. c语言变量循环队列的遍历操作,C语言实现循环队列
  4. 晶体谐振器 晶体振荡器 正确区分
  5. Cocos Creator 优化,帧动画优化
  6. 百度地图api卫星地球模式的调用
  7. Python爬虫系列之抖音热门视频爬取
  8. Python处理音频文件的实用姿势
  9. 【深度】人工智能或重演 2002 互联网泡沫 ! 95% 的企业会倒闭?
  10. postgresql 致命错误