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

jvm调优以及常见jvm问题解决等

 1、通过top命令查询异常的进程

top

2、通过 使用top -Hp<PID>命令查看该进程内各个线程的CPU占用情况:

top -Hp PID

记录下占用CPU较高的线程ID。

3、转换线程ID为十六进制

使用printf命令将线程ID 19664 转换为十六进制,结果为 0x4cd0:

printf "%x\n" <线程ID>

4、获取线程堆栈
使用jstack命令获取进程的线程堆栈信息:

# 得到线程堆栈信息中 4cd0 这个线程所在行的后面10行,从堆栈中可以发现导致cpu飙高的调用方法
jstack 19663|grep -A 10 4cd0

5、代码分析

根据堆栈信息,查看相关的Java代码。以下是一些可能导致CPU飙高的代码示例:

例如死循环,死锁等

public class BadSynchronization {  private static final Object lock1 = new Object();  private static final Object lock2 = new Object();  public static void method1() {  synchronized (lock1) {  synchronized (lock2) {  // 操作  }  }  }  public static void method2() {  synchronized (lock2) {  synchronized (lock1) {  // 操作  }  }  }  
}

6、使用性能分析工具

可以使用诸如Arthas、JProfile等Java性能分析工具进行更深入的分析。

7、查看GC日志

如果怀疑是GC问题,可以查看GC日志:

jstat -gcutil PID 1000

http://www.xdnf.cn/news/7944.html

相关文章:

  • idea无法识别Maven项目
  • LLaMA-Adapter
  • 使用MATLAB输出给定范围内的所有质数
  • Vue3 Element Plus el-table-column Sortable 排序失效
  • 多通道经颅直流电刺激器产品及解决方案特色解析
  • 告别手动绘图!2分钟用 AI 生成波士顿矩阵
  • 灾备认证助力构建数据资产安全防线‌
  • java中定时任务的实现及使用场景
  • NC028NQ472美光固态颗粒NQ484NQ485
  • MBSS-T1:基于模型的特定受试者自监督运动校正方法用于鲁棒心脏 T1 mapping|文献速递-深度学习医疗AI最新文献
  • 超越现有SOTA!DiT模型助力高分辨率图像生成
  • 工业物联网网关在变电站远程监控中的安全传输解决方案
  • 车辆诊断技术全生命周期管理与实践
  • Elasticsearch简单集成java框架方式。
  • Python Lambda 表达式
  • Python面试题
  • PyTorch进阶实战指南:02分布式训练深度优化
  • 数据集分享 | Sard(无人机搜救)数据集
  • 如何用数据可视化提升你的决策力?
  • 【GESP真题解析】第 6 集 GESP 二级 2023 年 6 月编程题 1:找素数
  • SLAM文献之-SuperOdometry: Lightweight LiDAR-inertial Odometry and Mapping
  • 计算机组成原理第2章(竟成)
  • 态度与价值的思考-250521
  • C++23 新特性:允许 std::stack 与 std::queue 从迭代器对构造 (P1425R4)
  • web.py使用时报错AttributeError: No template named image_window
  • 推荐个Github,Docker免费的加速网站
  • pcie gen4,gen5,gen6 新增特性说明
  • Linux虚拟文件系统(2)
  • TASK04【Datawhale 组队学习】构建RAG应用
  • kafka配置SASL_PLAINTEXT简单认证