linux中找到最耗CPU的那段Java代码

简介: linux中找到最耗CPU的那段Java代码

linux下查找java进程占用CPU过高原因

  1. 查找进程
  • top查看进程占用资源情况:top
    明显看出java的两个进程22714,12406占用过高cpu.

其他命令列出相关的java进程, 以及对应的pid

  • ps aux | grep java --color查看java进程
  • jps查看java进程
  • top -d 1top -c 后(输入大写 P 排序)
    top命令默认3秒刷新一次,-d 1改成1秒刷新
    top命令后,输入大写的Pcpu排序
    top命令后,输入大写的M内存排序
  1. 查找线程
    单独对这个进程中的所有线程作监视 使用top -H -p <pid>查看pid所有线程占用情况
    top -Hp <pid> (大写 P 排序)
    top -p 22714 -H
    PR为优先级, 值越负的厉害, 优先级越高 线程号:156643

或者

ps -Lfp pid 查看pid所有线程占用情况

ps -mp pid -o THREAD, tid, time

ps -T -p <pid> “SID”栏表示线程ID,而“CMD”栏则显示了线程名称。

  1. 查找java的堆栈信息
    将线程id转换成十六进制
    printf “%x\n”156643 (线程id)
    printf “%x\n”156643 -C5 --color
    3d30

然后再使用jstack查询线程的堆栈信息语法:jstack <pid> | grep -a 线程id(十六进制)

jstack <pid> | grep -a 3d30 (十六进制线程id)

或者直接 jstack 156643 (线程id)

这样就找出了有问题的代码了。

剩下的就是分析原因和修改代码了。

 


相关文章
|
16天前
|
Java 测试技术 应用服务中间件
常见 Java 代码缺陷及规避方式(下)
常见 Java 代码缺陷及规避方式(下)
43 0
|
18天前
|
Java
Java中ReentrantLock释放锁代码解析
Java中ReentrantLock释放锁代码解析
25 8
|
21天前
|
前端开发 小程序 Java
uniapp上传图片 前端以及java后端代码实现
uniapp上传图片 前端以及java后端代码实现
34 0
|
22天前
|
设计模式 存储 Java
23种设计模式,享元模式的概念优缺点以及JAVA代码举例
【4月更文挑战第6天】享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享技术有效地支持大量细粒度对象的重用。这个模式在处理大量对象时非常有用,特别是当这些对象中的许多实例实际上可以共享相同的状态时,从而可以减少内存占用,提高程序效率
35 4
|
22天前
|
设计模式 Java 中间件
23种设计模式,适配器模式的概念优缺点以及JAVA代码举例
【4月更文挑战第6天】适配器模式(Adapter Pattern)是一种结构型设计模式,它的主要目标是让原本由于接口不匹配而不能一起工作的类可以一起工作。适配器模式主要有两种形式:类适配器和对象适配器。类适配器模式通过继承来实现适配,而对象适配器模式则通过组合来实现
32 4
|
23天前
|
存储 缓存 算法
优化 Java 后台代码的关键要点
【4月更文挑战第5天】本文探讨了优化 Java 后台代码的关键点,包括选用合适的数据结构与算法、减少不必要的对象创建、利用 Java 8 新特性、并发与多线程处理、数据库和缓存优化、代码分析与性能调优、避免阻塞调用、JVM 调优以及精简第三方库。通过这些方法,开发者可以提高系统性能、降低资源消耗,提升用户体验并减少运营成本。
|
25天前
|
Java 开发工具 流计算
flink最新master代码编译出现Java Runtime Environment 问题
在尝试编译Flink源码时遇到Java运行时环境致命错误:EXCEPTION_ACCESS_VIOLATION。问题出现在JVM.dll+0x88212。使用的是Java 11.0.28和Java HotSpot(TM) 64-Bit Server VM。系统为Windows客户端,没有生成核心dump文件。错误日志保存在hs_err_pid39364.log和replay_pid39364.log。要解决这个问题,建议检查JDK版本兼容性,更新JDK或参照错误报告文件提交Bug至http://bugreport.java.com/bugreport/crash.jsp。
|
7天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
2天前
|
Linux
Linux rsyslog占用内存CPU过高解决办法
该文档描述了`rsyslog`占用内存过高的问题及其解决方案。
21 4
|
16天前
|
Java
代码的魔法师:Java反射工厂模式详解
代码的魔法师:Java反射工厂模式详解
26 0