当前位置: 首页 > news >正文

Java线程CPU占用过高如何排查?

  1. 使用ps命令查看java进程详细信息:
    1. ps aux | grep java
  2. 使用top命令查看系统进程占用情况
    1. top
  3. 使用jstack命令导出Java进程的堆栈信息
    1. jstack pid | grep tid -A 10 "java.lang.Thread.State" > gc.log
  4. 找出占用cpu最高的线程id:
    1. top -Hp -d 1 -n 1
    2. ps -mp -o THREAD,tid,time 
  5. 把占CPU最高线程id转换成16进制:
    1. printf "%x\n" tid
  6. 在stacktrace.log中寻找对应线程16进制值的线程代码
    1. jstack pid |grep 16进制值 -A 30

使用排查命令可以找到占用CPU过高的线程,根据线程堆栈信息可以分析线程的运行情况,找到占用CPU过高的原因。常见的原因包括死循环、线程阻塞、资源竞争等。针对不同的原因,可以采取不同的解决方案,如修改代码、调整线程池配置、优化数据库查询等。

http://www.lryc.cn/news/474030.html

相关文章:

  • uniapp推送配置流程
  • qt QPicture详解
  • ScheduledFuture Source Code Analysis
  • 【CSS】CSS 样式重置 (normalize.css 和 reset.css) 和通用样式配置
  • 自动化机器学习(AutoML)详解
  • Linux: network:erspan0
  • 第11课 计算思维
  • ACL, ACL Workshop, ACL Findings 解释
  • 《使用Gin框架构建分布式应用》阅读笔记:p272-p306
  • 【搜索引擎】俄罗斯搜索引擎yandex
  • 加密源代码|html代码如何加密保护?3分钟学会4种源代码加密妙招,代码人必看
  • Jetson Orin NX平台自研载板 IMX477相机掉线问题调试记录
  • spring-boot(整合mybatisplus、及常见注解)
  • 深度学习:yolov3的使用--建立模型
  • 关于我、重生到500年前凭借C语言改变世界科技vlog.13——深入理解指针(3)
  • 每日算法一练:剑指offer——数组篇(6)
  • 【环境搭建】Apache ZooKeeper 3.8.4 Stable
  • 算法练习——双指针
  • vue中el-table显示文本过长提示
  • JS 字符串拼接并去重
  • opencv 图像预处理
  • SAP B1 功能模块字段介绍 - 价格清单(下)
  • 传智杯 第六届-复赛-D
  • Java - 数组实现大顶堆
  • ifuse挂载后,在python代码中访问iOS沙盒目录获取app日志
  • Windows WSL环境下安装 pytorch +ROCM 支持AMD显卡
  • uniapp中skymap.html(8100端口)提示未登录的排查与解决方法
  • 训练模型时梯度出现NAN或者INF(禁用amp的不同level)
  • Maven核心概念
  • Sonatype Nexus 部署手册