您当前的位置:首页 > 电脑百科 > 软件技术 > 软件技术

线程CPU占用100%的问题怎么定位

时间:2021-11-23 16:37:22  来源:  作者:深漂小小熊

上上周生产出现问题,记录一下定位问题的方案,原创不易,欢迎关注

测试代码:

@RestController
@RequestMApping("/test")
public class TestController {
   private static Logger log = LoggerFactory.getLogger(TestController.class);
   @GetMapping("/test")
   public boolean test(){
       Thread t1 = new Thread(new ThreadOne());
       t1.setName("one");
       Thread t2 = new Thread(new ThreadTwo());
       t2.setName("two");

       t1.start();
       t2.start();
       return true;
  }

   public  class ThreadOne implements Runnable {
       public void run() {
           int a = 0;
           while (true) {
               a++;
               try {
                   log.info("[ThreadOne]当前a等于:{}",a);
                   Thread.sleep(10);
              } catch (InterruptedException e) {
                   e.printStackTrace();
              }
          }
      }
  }

   public  class ThreadTwo implements Runnable {
       public void run() {
           long a = 0L;
           while (true) {
               a++;
               log.info("[ThreadTwo]当前a等于:{}",a);
          }
      }
  }
}

触发:

线程CPU占用100%的问题怎么定位

 

第一种方式:

1、top找到占用CPU最多的进程

线程CPU占用100%的问题怎么定位

 

2、top -Hp pid 找出8139进程中耗用CPU最多的线程,按H,获取每个线程的内存情况

top -Hp 8139
线程CPU占用100%的问题怎么定位

 

3、printf "%xn" pid 将线程id转成十六进制

线程CPU占用100%的问题怎么定位

 

4、执行jstack命令,得到线程堆栈信息中12509这个线程所在行的后面20行

jstack 8139 |grep 30dd -A 20 >test.txt
线程CPU占用100%的问题怎么定位

 

5、将test.txt文件下载到本地,打开就能看到具体的堆栈信息,最后找出可能存在问题的代码

线程CPU占用100%的问题怎么定位

 

这个几个命令确实找到问题,但是整体敲下来需要一点时间,生产环境出现问题,需要争分夺秒,不然损失很大,也可能造成数据积压。下面推荐一个阿里大神写的一段脚本,只需要三步就可以搞定

第二种:使用show-busy-JAVA-threads快速排查Java的CPU性能问题

下载

wget --no-check-certificate https://raw.github.com/oldratlee/useful-scripts/release/show-busy-java-threads
线程CPU占用100%的问题怎么定位

 

添加执行权限

chmod +x show-busy-java-threads

启动

./show-busy-java-threads或者 sh show-busy-java-threads
线程CPU占用100%的问题怎么定位

 

显然,结果跟第一种一样。你学会了吗,哈哈



Tags:线程CPU   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
上上周生产出现问题,记录一下定位问题的方案,原创不易,欢迎关注测试代码:@RestController@RequestMapping("/test")public class TestController { private static Logger log...【详细内容】
2021-11-23  Tags: 线程CPU  点击:(21)  评论:(0)  加入收藏
▌简易百科推荐
今天教大家通过windows的CMD终端查看WIFI密码 使用管理权限打开CMD 查看本机连接过WIFI名称netsh wlan show profiles 查询某一个WIFI的密码比如这里我想查询猪猪侠的...【详细内容】
2021-12-27  吉祥同学学安全    Tags:wifi密码   点击:(1)  评论:(0)  加入收藏
从本质上来讲,PE系统最广泛的用途只是用来安装系统。通过其内置的Ghost软件来调用第三方的GHO系统镜像来完成系统的安装。从表面来看,最终的系统是否纯净、是否安全,与Gho镜像...【详细内容】
2021-12-27  u盘装系统    Tags:pe工具   点击:(2)  评论:(0)  加入收藏
Safari是苹果在iPhone和iPad上的默认网络浏览器。虽然我们天天都在使用,但是,你是否深入研究了Safari的所有功能和设置?"无痕浏览"、"阅读器"视图和下载文件等标准选项只是其...【详细内容】
2021-12-16  趣玩公社    Tags:Safari   点击:(20)  评论:(0)  加入收藏
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个开源的 HTML5 视频播放器插件——MuiP...【详细内容】
2021-12-16  GitHub精选    Tags:插件   点击:(22)  评论:(0)  加入收藏
给电脑安装软件,最让人担心的就是安装到“拖家带口”的,而这样的手法正是国产软件惯用的!全家桶自动安装、软文弹窗等等,这些让我们讨厌的却是软件的直接收入来源。 那么在你安...【详细内容】
2021-12-15  老毛桃winpe    Tags:软件   点击:(18)  评论:(0)  加入收藏
不知道你是否遇到过这么一种情况:在一个A4大小的图框画一个接近满框的图形,在打印的时候却发现图形很小根本不符合模型空间的实际情况。看似明显是比例问题,但又不知道究竟是什...【详细内容】
2021-12-14  设计师小仁君    Tags:CAD   点击:(20)  评论:(0)  加入收藏
哈喽大家好! 前几天一个朋友向我疯狂吐槽。 快到年底了,公司要统计年度数据。 需要把一月到十二月份,十二张表格的数据,全部汇总到一个表格内。 这样的数据汇报每年都会有,每到年...【详细内容】
2021-12-14  秋叶Excel    Tags:Excel   点击:(23)  评论:(0)  加入收藏
我发现最近不少小叶子的留言都和 Excel 相关,我寻思是时候出一期解决 Excel 疑难杂症的小合集了。于是毛毛在众多问题中,挑了三个被问次数最多的有关 Excel 的问题,今天就来给...【详细内容】
2021-12-14  叶PPT    Tags:Excel   点击:(27)  评论:(0)  加入收藏
大家好,我是Stark-C。油猴简介【油猴】一款免费的浏览器扩展和最为流行的用户脚本管理器,它是一个附加组件(扩展程序),让用户安装一些脚本使大部分HTML为主的网页改变得更方便易...【详细内容】
2021-12-13  什么值得买    Tags:油猴   点击:(43)  评论:(0)  加入收藏
年末,又到了各大厂商盘点年度最佳的时候了。不过让世超感到意外的是 Google 竟然给自己 Chrome 的插件,做了一个 2021 年精选集锦,挑选出了 13 款今年最热门的 Chrome 插件。...【详细内容】
2021-12-13  科技知迅    Tags:Chrome   点击:(19)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条