linux部署java项目cpu占用100%的排除故障

news2024/11/14 19:28:09

用top -c命令查看cpu占用高的进程

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/12af3f060fb84ce98b24c7247546b50b.png
发现cpu占用为99%的进程pid为24857

用top -Hp 24857查看cpu占用最高的线程

在这里插入图片描述
发现占用cpu97.3%的线程id为24926

将24926转为16进制

在这里插入图片描述

通过jstack查看进程信息

24857为进程id
615e为线程的16进制id

jstack 24857 | grep "615e" -A 30

在这里插入图片描述
查处了这个问题
搜寻资料发现这是jdk8的一个bug,jdk9以后以解决,因此把jdk8换车了jdk11,cpu占用不在为100%,变为正常

从上面可以看到,ScheduledThreadPoolExecutor这个类的内部类DelayedWorkQueue的poll方法消耗了大量的cpu资源。

查看代码中用到ScheduledThreadPoolExecutor的地方:

int corePoolSize = 0;
ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(corePoolSize);

这里声明了一个corePoolSize为0的线程池,这是有点诡异的地方,但是是允许的。

然而,问题就出在这个诡异点,这里触发了java的一个bug:

JDK-8129861:

ScheduledThreadPoolExecutor with corePoolSize = 0 causes 100% load on one CPU core

该bug即使用corePoolSize为0的ScheduledThreadPoolExecutor,会导致cpu飙升,已在java 9修复。具体描述请参见:

https://bugs.openjdk.java.net/browse/JDK-8129861

其他调优命令

在这里插入图片描述
S0:年轻代中第一个 survivor(幸存区)已使用的占当前容量百分比
S1:年轻代中第二个 survivor(幸存区)已使用的占当前容量百分比
E:年轻代中 Eden 区已使用的占当前容量百分比
O:老年代已使用的占当前容量百分比
M:元数据区使用比例
CCS:压缩使用比例
YGC:从应用程序启动到采样时年轻代中 gc 次数
YGCT:从应用程序启动到采样时年轻代中 gc 所用时间(单位秒)
FGC:从应用程序启动到采样时老年代 full gc 次数
FGCT:从应用程序启动到采样时老年代 full gc 所用时间(单位秒)
GCT:从应用程序启动到采样时 gc 用的总时间(单位秒)

在这里插入图片描述
最后使用 JDK 自带的工具,JAVA_HOME/bin/jvisualvm.exe工具分析快照

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/176965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

袋式除尘器—选型计算

1.处理气体量的计算计算袋式除尘器的处理气体时,首先要求出工况条件下的气体量,即实际通过袋式除尘器的气体量,并且还要考虑除尘器本身的漏风量。这些数据,应根据已有工厂的实际运行经验或检测资料来确定,如果缺乏必要…

Day09 - 子类父类多继承多层继承多态

1. 子类中访问父类中的私有属性和私有方法 如果想使用父类中的私有属性和私有方法,那么就需要在父类中,为这些私有的属性和方法,提供相应的公有的接口方法来间接访问2. 如何为父类中的属性进行初始化 在子类中如果定义了自己的初始化方法,那么这时父类的初始化方法就不会再执…

尚硅谷AJAX教程

优点&#xff1a;无需刷新页面获取数据&#xff0c;允许你根据用户事件来更新部分页面内容 缺点&#xff1a;没有浏览历史&#xff0c;不能回退&#xff0c;存在跨域&#xff0c;SEO不友好 原生XHR请求 get请求 <body><button>获取数据</button><scri…

弹性可微调,基于LCN光敏材料的触觉模拟系统

对于AR/VR体验来讲&#xff0c;体感、触觉模拟很重要&#xff0c;但现阶段还没有一种方便消费者使用、轻便的体感方案&#xff0c;因此Meta等公司不断在探索更好的体感技术。比如近期&#xff0c;Nature发表了一项来自荷兰埃因霍芬理工大学的新研究&#xff0c;该研究由Meta Re…

svg的path标签的d属性

<svgwidth"200"height"200"viewBox"0 0 200 200"style"border: 1px solid red"><pathd"M10 10 L110 10 L110 110 L10 110 Z"fill"none "stroke"green"></path></svg>运行效果…

Redux Toolkit 调用 API 的四种方式

Redux Toolkit 调用 API 的四种方式 上篇笔记写的比较乱&#xff0c;加上这回又学了点新的东西&#xff0c;所以重新整合一下。 本地 API 用的是 json-server&#xff0c;端口设置在 3005&#xff0c;数据包含&#xff1a; {"users": [{"id": 1,"n…

数据分析-深度学习 Pytorch Day9

迁移学习通过利用数据、任务或模型之间的相似性&#xff0c;将在旧领域学习过的模型应用于新领域来求解新问题。生活中常用的“举一反三”、“照猫画虎”就很好地体现了迁移学习的思想。利用迁移学习的思想&#xff0c;可以将已有的一些训练好的模型&#xff0c;迁移到我们的任…

【Kotlin】泛型 ② ( 可变参数 vararg 关键字与泛型结合使用 | 使用 [] 运算符获取指定可变参数对象 )

文章目录一、可变参数 vararg 关键字与泛型结合使用二、使用 [] 运算符获取指定可变参数对象一、可变参数 vararg 关键字与泛型结合使用 如果 泛型类型 T 的参数 是 vararg 可变参数 , 则在接收 可变参数 时 , 需要使用 Array<out T> 类型 的变量进行接收 ; 参数为 vara…

分房管理系统Rose模型设计过程

文章目录 一、模型总体设计 1 创建系统的Use Case 视图 2 创建系统的 Logical 视图 3 创建系统的 Class 框图 4 创建系统的 StateChart 框图 5 创建系统的 Activity 框图 二、软件模块结构图设计 1 根据系统功能进行第一级分解 2 完成第二级分解 3 完成第三级分解 4 整合得到完…

从零开始的python基础教程

一、Getting Started 如果使用的是mac或linux系统&#xff0c;需要输入 python3 比如运行 python3 app.py 可以直接在终端的>>>符号后执行python代码 print("*" * 10) 1、实现 在相关终端当运行“python”为CPython&#xff0c;这是python的默认实现 Jy…

大数据--spark

什么是SparkApache Spark 的架构基础是弹性分布式数据集 (RDD)&#xff0c;这是一种只读的多组数据项&#xff0c;分布在机器集群上&#xff0c;以容错方式维护。[2] Dataframe API 作为 RDD 之上的抽象发布&#xff0c;随后是 Dataset API。在 Spark 1.x 中&#xff0c;RDD 是…

39-剑指 Offer 41. 数据流中的中位数

题目 如何得到一个数据流中的中位数&#xff1f;如果从数据流中读出奇数个数值&#xff0c;那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值&#xff0c;那么中位数就是所有数值排序之后中间两个数的平均值。 例如&#xff0c; [2,3,4] 的中位…

50个常用的 Numpy 函数详解

目录 一、创建数组 1、Array 2、Linspace 3、Arange 4、Uniform 5、Random.randint 6、Random.random 7、Logspace 8、zeroes 9、ones 10、full 11、Identity 二、数组操作 12、min 13、max 14、unique 15、mean 16、medain 17、digitize 18、reshape 19、…

详解1247:河中跳房子(二分经典例题)

1247&#xff1a;河中跳房子【题目描述】每年奶牛们都要举办各种特殊版本的跳房子比赛&#xff0c;包括在河里从一个岩石跳到另一个岩石。这项激动人心的活动在一条长长的笔直河道中进行&#xff0c;在起点和离起点L远 (1 ≤ L≤ 1,000,000,000) 的终点处均有一个岩石。在起点和…

《Unity Shader 入门精要》第6章 Unity 中的基础光照

第6章 Unity 中的基础光照 6.1 我们是如何看到这个世界的 通常来说我们要模拟真实的光照环境来生成一张图像&#xff0c;需要考虑3种物理现象&#xff1a; 首先&#xff0c;光线从光源&#xff08;light source&#xff09;中被发射出来然后&#xff0c;光线和场景中的一些物…

JavaScript while 循环

文章目录JavaScript while 循环while 循环do/while 循环比较 for 和 while笔记列表JavaScript while 循环 只要指定条件为 true&#xff0c;循环就可以一直执行代码块。 while 循环 while 循环会在指定条件为真时循环执行代码块。 语法 while (条件) {需要执行的代码 }本例中…

Redis内部的阻塞式操作以及应对方法

Redis之所以被广泛应用&#xff0c;很重要的一个原因就是它支持高性能访问&#xff0c;也正因为这样&#xff0c;我们必须要重视所有可能影响Redis性能的因素&#xff0c;不仅要知道具体的机制&#xff0c;尽可能避免异常的情况出现&#xff0c;还要提前准备好应对异常的方案。…

MySQL进阶篇之索引2

02、索引 前四节内容&#xff1a;https://blog.csdn.net/kuaixiao0217/article/details/128753999 2.5、SQL性能分析 2.5.1、查看执行频次 1、SQL执行频率 MySQL客户端连接成功后&#xff0c;通过show [session|global] status命令可以提供服务器状态信息。 通过如下指令…

Computer architecture Cyber security Quantum computing交友

如果您也是computer architecture方向的博士硕士&#xff0c;希望交个朋友&#xff0c;欢迎后台私信。 当然&#xff0c;如果您也是 Cyber SecurityQuantum ComputingHigh Performance Computing 方向的博士硕士&#xff0c;想要交流&#xff0c;也可以私信。

学习记录669@项目管理之项目合同管理

有效合同原则 有效合同应具备以下特点: (1)签订合同的当事人应当具有相应的民事权利能力和民事行为能力。 (2)意思表示真实。 (3)不违反法律或社会公共利益 与有效合同相对应&#xff0c;需要避免无效合同。无效合同通常需具备下列任一情形: (1)一方以欺诈、胁迫的手段订立合…