首页 > 系统相关 >Java进程CPU飙升到800%

Java进程CPU飙升到800%

时间:2023-02-07 18:12:16浏览次数:44  
标签:Java 800% top PID 线程 进程 jstack CPU

最近遇到springboot项目部署cup过高问题,首先环境是实现ApplicationRunner类在run中使用到了线程池;

问题定位步骤:

在liunx命令窗口执行:

1)、首先通过top指令查看当前占用CPU较高的进程PID;

top

2)、查看当前进程消耗资源的线程PID:top -Hp PID

top -Hp 11701

3)、通过print命令将线程PID转为16进制,根据该16进制值去打印的堆栈日志内查询,查看该线程所驻留的方法位置。

printf "%x\n"  11701

4)、使用dk自带命令jstack获取该java进程的线程快照并输入到文件,查看栈信息,定位到线程对应的具体代码。

jstack -l 11701(进程ID) > ./jstack_result.txt 

 在jstack_result.txt 文件中根据线程好nid搜索对应的线程描述:

 

 定位代码发现如下:

 

 

归纳问题一般原因:

1、空循环

可以使用Thread.sleep或者加锁,让线程适当的阻塞

2、在循环的代码逻辑中,创建大量的新对象导致频繁GC;如查询数据库创建大量实体。

可以减少对象的创建数量,或者可以考虑使用 对象池

3、selector空轮巡导致

无效的事件查询到了一定的次数,进行 selector 重建

 

标签:Java,800%,top,PID,线程,进程,jstack,CPU
From: https://www.cnblogs.com/zyanrong/p/17099388.html

相关文章

  • Java测试框架——JUnit详解(4&5)
    JUnit是Java编程语言的单元测试框架,用于编写和运行可重复的自动化测试,也是当下主流的Java测试框架前言如果有对单元测试还不熟悉的小伙伴可以看一下我的这篇文章——​​浅......
  • 【性能分析】【SLG】cpu-script卡顿案例
    用Unity自带的Profile排查,卡顿的原因主要在于循环遍历的次数太多。案例:遍历格子数太多导致卡顿。SLG游戏一张大地图由横竖多块“屏”拼接而成,一“屏”又由一片格子组成,一......
  • java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient()Lcom/google
    引入第三方的工具类,重新启动项目就会奇奇怪怪的报错。加载不到gson类。一开始以为是没有加载到,各种引入,清理问题依然存在。直到仔细看报错信息,里面是spring的类报错,才意识......
  • Java学习实战
    目录 1.搭建springboot单体服务,集成undertow容器 2.使用AOP思想,实现数据加解密 3.搭建springcloud项目,集成Gateway网关 4.集成sentinel组件,实现限流、熔断、......
  • Java下载文件的4种方式总结
    1.以流的方式下载.publicHttpServletResponsedownload(Stringpath,HttpServletResponseresponse){try{//path是指欲下载的文件的路径。Filefile=newF......
  • java对自定义类型的两种排序方法(Arrays.sort和Collections.sort)
    前言对普通基本类型的数组或者集合sort都有相应的排序方法(从小到大),但是对于我们自定义的类型,就需要重新定义比较器,这里介绍对对象数组排序的Arrays.sort和对集合排序的Coll......
  • java学习笔记
    1.java经典题目练习看旁边的目录分类:​​点这里​​ 2.常用实用类​​JavaFile类​​ ​​java大数类总结​​3.知识点​​java对自定义类型的两种排序方法(Arrays.sort和......
  • Java File类
    Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。File对象代表磁盘中实际存在的文件和目录。通过以下构造方法创......
  • JavaScript 解决 query string 乱码问题?
    在JavaScript中获取URL中的querystring时,如果字符串中含有中文字符或特殊字符,可能会遇到乱码问题。为解决这一问题,可以使用decodeURIComponent()函数对整个query......
  • 微机原理与系统设计笔记3 | 8086cpu指令系统
    打算整理汇编语言与接口微机这方面的学习记录。本部分介绍8086的指令系统(一些与程序设计密切相关的如子程序调用指令放在下一部分)。参考资料西电《微机原理与系统......