java中jvm使用jststak定位线程cpu占用内存高的线程

简介: java中jvm使用jststak定位线程cpu占用内存高的线程

1.查看java进程,并导出文件

[root@MiWiFi-R4-srv home]# jps -l

2728 sun.tools.jps.Jps

2622 ./jvm-0.0.1-SNAPSHOT.jar

[root@MiWiFi-R4-srv home]# jststak 2622 > 2622.txt

-bash: jststak: command not found

[root@MiWiFi-R4-srv home]# jstack 2622 > 2622.txt

[root@MiWiFi-R4-srv home]# sz 2622.txt

[root@MiWiFi-R4-srv home]#

2.使用top -p 2622 -H 查看看所有java中的进程

[root@MiWiFi-R4-srv home]# top -p 2622 -H

top - 05:35:51 up 11 min,  1 user,  load average: 1.81, 1.24, 0.53

Tasks:  30 total,  2 running,  28 sleeping,   0 stopped,   0 zombie

Cpu(s): 91.4%us,  0.8%sy, 0.0%ni,  7.6%id, 0.0%wa,  0.0%hi, 0.2%si,  0.0%st

Mem:   1906556k total,  1443924k used,  462632k free,   23812k buffers

Swap:  2097144k total,       0k used,  2097144k free,  249896k cached

  PID USER     PR  NI  VIRT RES  SHR S %CPU %MEM   TIME+ COMMAND                                                            

 2624 root     20  0 2929m 603m  12m R 87.9 32.4   4:31.58 java  

3.转换为16进制去第一步文件中进行查找

[root@MiWiFi-R4-srv home]# printf "%x" 2624

a40

转换后为a40接着去第一步导出的文件中进行查找

--------------------------------

相关文章
|
监控 Java Unix
6个Java 工具,轻松分析定位 JVM 问题 !
本文介绍了如何使用 JDK 自带工具查看和分析 JVM 的运行情况。通过编写一段测试代码(启动 10 个死循环线程,分配大量内存),结合常用工具如 `jps`、`jinfo`、`jstat`、`jstack`、`jvisualvm` 和 `jcmd` 等,详细展示了 JVM 参数配置、内存使用、线程状态及 GC 情况的监控方法。同时指出了一些常见问题,例如参数设置错误导致的内存异常,并通过实例说明了如何排查和解决。最后附上了官方文档链接,方便进一步学习。
3554 4
|
存储 设计模式 监控
快速定位并优化CPU 与 JVM 内存性能瓶颈
本文介绍了 Java 应用常见的 CPU & JVM 内存热点原因及优化思路。
1615 166
|
Arthas 监控 Java
Java死锁 如何定位?如何避免Java死锁?(图解+秒懂+史上最全)
Java死锁 如何定位?如何避免Java死锁?(图解+秒懂+史上最全)
Java死锁 如何定位?如何避免Java死锁?(图解+秒懂+史上最全)
线程CPU异常定位分析
【10月更文挑战第3天】 开发过程中会出现一些CPU异常升高的问题,想要定位到具体的位置就需要一系列的分析,记录一些分析手段。
447 0
|
搜索推荐 Java 定位技术
Java实现利用GeoLite2-City.mmdb根据IP定位城市的方法
在城市,国家,地区等地理位置数据获取之后,你可以依指定的业务需求,来进行进一步的数据处理。例如,你可以设计一个应用,根据用户的 IP 地址来个性化地展示内容,或者用于分析网络请求的来源等。
2582 20
|
Arthas 监控 Java
Arthas thread(查看当前JVM的线程堆栈信息)
Arthas thread(查看当前JVM的线程堆栈信息)
2495 10
|
安全 Java Python
CPU 只能看到线程
在 Python 中,由于 GIL(全局解释器锁)的存在——这是一个互斥锁,确保同一时刻只有一个线程能执行——因此在 CPython 解释器下不支持多线程并行执行。但多进程呢?它们之间的区别是什么?如何选择合适的方法?你了解协程吗?让我们一起探讨。
463 14
CPU 只能看到线程
|
存储 设计模式 监控
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
507 0
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
Java 对象存储 开发者
如何找出Java进程占用CPU高的元凶
本文记录了一次Java进程CPU占用率过高的问题和排查思路。