首页 > 编程语言 >手把手教你java CPU飙升300%如何优化

手把手教你java CPU飙升300%如何优化

时间:2024-06-23 09:00:16浏览次数:27  
标签:300% java 4338 16 top pid 排序 CPU 4353

背景

今天有个项目运行一段时间后,cpu老是不堪负载。

排查

top 命令

TOP 命令
top t 按cpu 排序
top m 按内存使用率排序

在这里插入图片描述

从上面看很快看出是 pid 4338 这个进程资源消耗很高。

top -Hp pid

  • top -Hp 4338 找到对应线程消耗的资源
  • shft+p cpu占用进行排序,
  • shift+m 按照内存排序
    在这里插入图片描述

这里拿4353 举例线程资源占用最多,这里先记下来。然后获取4353的16进制值

 printf "%x\n" 4353

在这里插入图片描述

得到 4353 对应16进制 是1101

接下来导出该pid 进程快照结果,从而去找线程

jstack命令

jstack -l 4338 >  js.txt

打开 js.txt 搜索4353 对应16进制 是1101
在这里插入图片描述
从图可知是gc 导致。

标签:300%,java,4338,16,top,pid,排序,CPU,4353
From: https://blog.csdn.net/qq_38420688/article/details/139867609

相关文章

  • Java 超详细实现导入导出 (包含时间转换问题和样式)
    序言工作中遇到了导入导出问题,并且出现了导入或导出Excel时间格式变为数字的问题。通过学习解决实现了这些功能,记录总结分享给大家。本文将详细介绍如何使用Java编程语言和ApachePOI库来实现这些功能。我们将通过一个示例项目演示如何从数据库中读取数据并将其导出为Ex......
  • LangChain4j LangChain集成Java
    LangChain4j介绍github地址https://github.com/langchain4j快速开始引入依赖<dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-open-ai</artifactId><version>0.31.0</version></dependency&g......
  • Java解析微信获取手机号信息
    在微信中,用户手机号的获取通常是通过微信小程序的getPhoneNumber接口来实现的。这个接口允许用户在授权后,将加密的手机号数据传递给开发者。由于隐私保护,微信不会直接提供用户的明文手机号,而是提供一个加密的手机号字符串和相应的解密密钥。以下是一个基于Java的示例,展示了如何接......
  • Java高手的30k之路|面试宝典|精通JVM(二)
    JVM基本结构类加载子系统:负责将.class文件加载到内存中,并进行验证、准备、解析和初始化。运行时数据区:包括堆(Heap)、方法区(MethodArea)、Java栈(JavaStack)、本地方法栈(NativeMethodStack)和程序计数器(ProgramCounterRegister)。执行引擎:包括解释器(Interpreter)、即时编译器......
  • Java脚本实现在微信聊天框发消息
    最近,有读者问Java脚本如何实现在微信聊天框发消息。首先,需要明确一点:由于微信的安全限制和封闭性,直接使用Java(或任何其他外部编程语言)来控制在微信聊天框中发送消息是不可行的。微信没有提供公开的API来允许外部程序直接与其交互。但是,如果我们的目标是创建一个可以与微信集成的......
  • Java高手的30k之路|面试宝典|精通网络编程
    基础概念OSI和TCP/IP在高级Java开发面试中,关于OSI模型和TCP/IP模型的理解是非常重要的。以下是这两个网络模型及其各层功能的详细解释:OSI模型OSI(OpenSystemsInterconnection)模型是一个概念性框架,用于理解和设计网络通信的不同层次。它分为七层,每层都有特定的功能。......
  • Java脚本实现在微信聊天框发消息
    最近,有读者问Java脚本如何实现在微信聊天框发消息。首先,需要明确一点:由于微信的安全限制和封闭性,直接使用Java(或任何其他外部编程语言)来控制在微信聊天框中发送消息是不可行的。微信没有提供公开的API来允许外部程序直接与其交互。但是,如果我们的目标是创建一个可以与微信集成......
  • 一、若依--P2--P5【黑马程序员Java最新AI+若依框架项目开发新方案视频教程,基于RuoYi-V
    学习视频【黑马程序员Java最新AI+若依框架项目开发新方案视频教程,基于RuoYi-Vue3前后端分离版本,从前端到后端再到AI智能化应用全通关】https://www.bilibili.com/video/BV1pf421B71v/?p=6&share_source=copy_web&vd_source=3949d51b57b2891ea14d6e51c792bef6P2:前端框架搭......
  • java面试题--基础上
    一、说说&和&&的区别?作为运算符:&将二进制的每一位进行与运算作为逻辑运算符:两者都是与,&&如果左边为假则终止右边运算,即短路运算。&则需要把两边的比较执行完。二、int和Integer的区别int是Java的基本数据类型,而Integer是int的包装类int直接存储整数值,而Integer是一个对象,包含......
  • 2024年华为OD机试真题-生成哈夫曼树-(C++/Java/python)-OD统一考试(C卷D卷)
    题目描述给定长度为n的无序的数字数组,每个数字代表二叉树的叶子节点的权值,数字数组的值均大于等于1。请完成一个函数,根据输入的数字数组,生成哈夫曼树,并将哈夫曼树按照中序遍历输出。为了保证输出的二叉树中序遍历结果统一,增加以下限制:二叉树节点中,左节点权值小于右节点......