`
lxy2330
  • 浏览: 468582 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jstack使用

 
阅读更多

Java综合 我们使用jdk自带的jstack来分析。当linux出现cpu被java程序消耗过高时,以下过程说不定可以帮上你的忙:

1.top查找出哪个进程消耗的cpu高
21125 co_ad2    18   0 1817m 776m 9712 S  3.3  4.9  12:03.24 java                                                                                          
5284 co_ad     21   0 3028m 2.5g 9432 S  1.0 16.3   6629:44 java                                                                                          
21994 mysql     15   0  449m  88m 5072 S  1.0  0.6  67582:38 mysqld                                                                                        
8657 co_sparr  19   0 2678m 892m 9220 S  0.3  5.7 103:06.13 java

这里我们分析21125这个java进程。

2.top中shift+h查找出哪个线程消耗的cpu高
先输入top,然后再按shift+h
21233 co_ad2    15   0 1807m 630m 9492 S  1.3  4.0   0:05.12 java                                                                                          
20503 co_ad2_s  15   0 1360m 560m 9176 S  0.3  3.6   0:46.72 java                                                                                          
21134 co_ad2    15   0 1807m 630m 9492 S  0.3  4.0   0:00.72 java                                                                                          
22673 co_ad2    15   0 1807m 630m 9492 S  0.3  4.0   0:03.12 java

这里我们分析21233这个线程,并且注意的是,这个线程是属于21125这个进程的。

3.jstack查找这个线程的信息
jstack [进程]|grep -A 10 [线程的16进制]
即:

Java代码 复制代码 收藏代码
  1. jstack 21125|grep -A 10 52f1  
jstack 21125|grep -A 10 52f1


-A 10表示查找到所在行的后10行。21233用计算器转换为16进制52f1,注意字母是小写。
结果:

Java代码 复制代码 收藏代码
  1. "http-8081-11" daemon prio=10 tid=0x00002aab049a1800 nid=0x52bb in Object.wait() [0x0000000042c75000]   
  2.    java.lang.Thread.State: WAITING (on object monitor)   
  3.      at java.lang.Object.wait(Native Method)   
  4.      at java.lang.Object.wait(Object.java:485)   
  5.      at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:416)  
"http-8081-11" daemon prio=10 tid=0x00002aab049a1800 nid=0x52bb in Object.wait() [0x0000000042c75000]
   java.lang.Thread.State: WAITING (on object monitor)
     at java.lang.Object.wait(Native Method)
     at java.lang.Object.wait(Object.java:485)
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:416)


说不定可以一下子定位到出问题的代码。

分享到:
评论

相关推荐

    Jstack使用说明PDF

    Jstack使用说明

    Java线程Dump分析工具jstack解析及使用场景

    本文将深入解析jstack的使用方法及其在不同场景下的应用。 jstack命令的基本格式如下: ``` jstack [-l] [-F] pid ``` 其中,`pid` 是Java进程的ID,`-l` 选项会提供更详细的线程和锁信息,而 `-F` 选项则用于在...

    JDK14性能管理工具之jstack使用介绍

    使用jstack时,它会向目标Java进程发送一个请求,以获取当前所有线程的堆栈跟踪信息。输出结果通常包括线程ID、线程状态、执行堆栈的类名、方法名、字节码索引和行号。这对于开发者和运维人员来说,都是理解和解决...

    抓取jstack方法及解决system用户执行jstack命令权限问题

    抓取jstack方法及解决system用户执行jstack命令权限问题, 打开cmd窗口,输入命令 jstack -l 49824>>C:/error01.txt 其中49824为tomcat8.0 的pid ; error01.txt 这个可以自己取名字 多输出几份jstack 文件,做比对...

    使用jstack定位分析CPU消耗问题.docx

    使用 jstack 定位分析 CPU 消耗问题 在实际生产环境中,CPU 占用率过高的问题经常会出现,特别是在高并发情况下。使用 jstack 工具可以帮助我们快速定位 CPU 消耗问题的根源。本文将详细介绍使用 jstack 工具定位...

    Kubernetes应用java程序无法使用jmap,jstack的解决方案.docx

    Kubernetes 应用 Java 程序无法使用 jmap, jstack 的解决方案 背景: 在 Kubernetes 环境中,运行 Java 程序时,无法使用 jmap 和 jstack 命令进行性能分析和诊断。这种情况下,无法获取 Java 进程的 pid,导致无法...

    JStack和Java Thread Dumps分析

    本文将详细介绍`JStack`的使用方法及其在分析Java线程堆栈中的应用。 #### 二、JStack简介 `JStack`是Java Development Kit (JDK)的一部分,用于生成正在运行的Java应用程序的线程快照。这些快照提供了关于每个...

    图形界面分析threadump_jstack分析工具_包含jdk

    标题中的“图形界面分析threadump_jstack分析工具_包含jdk”指的是一个专用于分析Java应用程序线程堆栈信息的工具,该工具具有图形用户界面,能够帮助开发者更直观地理解和解决程序中的线程问题。这个工具包含了JDK...

    MPP的jstack分析结果

    《深入理解MPP系统中的jstack分析》 在IT领域,特别是大数据处理中,MPP(Massive Parallel Processing)系统因其高效的数据处理能力而被广泛应用。然而,随着系统的复杂性增加,性能调优和问题排查变得至关重要。...

    输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程

    为了获取这些信息,我们可以使用jstack工具,它是Java开发工具包(JDK)的一部分,能够输出Java进程的线程堆栈跟踪信息。 jstack命令通常可以输出以下类型的信息: 1. 线程的完整堆栈跟踪,包括本地方法。 2. 显示...

    windows系统jstack自动抓取脚本

    windows系统jstack自动抓取脚本

    jmap、jstack、jstat组合使用定位jvm问题.txt

    jmap、jstack、jstat组合使用定位jvm问题

    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解.docx

    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解 本文将对一些常用的 JVM 性能调优监控工具进行介绍,包括 jps、jstack、jmap、jhat、jstat 等工具的使用详解。这些工具对于 Java 程序员来说是必备的,...

    使用jstack -l pid > jstack.log排查问题

    jstack 分析工具

    JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat.doc

    本文将深入探讨六种关键的JVM监控工具——`jstack`, `jconsole`, `jinfo`, `jmap`, `jdb`, `jstat`——它们各自的功能、应用场景及如何帮助开发者和运维人员诊断并解决JVM中的复杂问题。 #### 1. jstack —— Java ...

    jstack-jboss-7.5.0-Final.zip

    要分析这个问题,我们需要使用`jstack`工具。`jstack`是Java虚拟机自带的一个命令行工具,它可以打印出指定进程的线程堆栈信息,帮助开发者找出死锁、线程阻塞等问题。在`8508.jstack2.log`文件中,我们可以找到所有...

    Jstack分析工具——IBM Thread and Monitor Dump Analyzer for Java

    需要本地安装JDK并配置JAVA环境变量。 之后使用java -jar jca469.jar即可打开工具。 直接将dump出来的堆栈信息,打开,便可分析。

    用jstack分析CPU占用率高的原因.zip

    用jstack分析CPU占用率高的原因 1 top -H -p pid 2 linux printf命令将10进制转换为16进制 3在jstack中找到相应的堆栈信息jstack pid grep 'nid' -C5 –color

    jstack文件

    Broken pipe产生的原因通常是当管道读端没有在读,而管道的写端继续有线程在写,就会造成管道中断。(由于管道是单向通信的) SIGSEGV(Segment fault)意味着指针所对应的地址是无效地址,没有物理内存对应该地址。

    jstack生成的Thread Dump日志.docx

    - 使用`jstack`配合`jconsole`、`VisualVM`等工具定期收集Thread Dump,分析趋势,找出异常行为。 - 优化同步策略,减少不必要的锁竞争,考虑使用`ReentrantLock`、`Semaphore`等高级同步工具,或使用并发集合类。...

Global site tag (gtag.js) - Google Analytics