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

jstack中的nid的含义

 
阅读更多

当运行jstack时,一个stack的内容如下:

 

Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.25-b01 mixed mode):

"Attach Listener" daemon prio=10 tid=0x00000000029eb800 nid=0x5cac waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

 

tid, Java memory address of its internal Thread control structure.

nid, native thread id. 每一个nid对应于linux下的一个tid, 即lwp  (light weight process, or thread).

 

linux下的lwp可以在/proc/pid/task/下查看。

需要注意的是,jstack中的nid是十六进制数,task目录下为十进制数,需要转换一致后才可以比较。

 

linux下的lwp也可以通用ps来查看

 

ps -mp pid号 -o THREAD,tid,lwp,nlwp,time,rss,size,%mem

 

顺便说一句,上面ps语句中的WCHAN的含义:

 

WCHAN : 若该进程在睡眠,则显示睡眠中的系统函数名

 

分享到:
评论

相关推荐

    JStack和Java Thread Dumps分析

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

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

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

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

    8. 在之前保存的 JVM 进程的栈信息文件中找到 nid=<PID> 的线程的栈信息。 问题解决方案 通过分析代码,发现 com.zatech.bank.framework.log.pattern.ZaFileOfCallerConverter.convert 方法占用了大量 CPU 资源,该...

    性能测试中的系统资源分析之 CPU

    例如,`jstack pid | grep nid -C10 --color`会显示相关代码所在的文件和行数。在某些情况下,可能需要将堆栈信息保存到文件中进行离线分析,可以使用`jstack pid > jstack.txt`来生成dump文件。 在排查CPU问题时,...

    Java堆栈分析服务器

    在这里,我们输入`jstack 29609`,查找nid=0x7450(或者其他高CPU占用线程对应的十六进制ID)的相关堆栈信息。这些信息会显示出每个线程当前执行的方法,以及调用堆栈,这对于定位问题非常关键。 分析`jstack`输出...

    CPU热点定位

    这里使用`jstack`命令将PID为3481的Java进程的所有线程信息导出到文件`3481.dump`中,便于后续分析。 ##### 3. 使用`top`查看线程CPU使用情况 ``` [root@GXCWMIS04~]$ top -H -p 3481 ``` 通过`top -H -p 3481`...

    JAVA JVM性能调优监控工具详解

    下面通过一个实例来说明如何使用`jstack`来找出某个Java进程中CPU占用最高的线程并定位其堆栈信息: 1. **找出Java进程ID**:假设我们的Java应用名为`mrf-center`,可以通过`ps -ef | grep mrf-center | grep -v ...

    JAVA 线上故障排查完整套路,从 CPU、磁盘、内存、网络、GC 一条龙!.docx

    接着,我们可以使用 jstack pid |grep 'nid' -C5 –color 命令来找到 nid 的堆栈信息。通过分析堆栈信息,我们可以确定 CPU 故障的来源。 二、GC 故障排查 GC 故障排查是 Java 线上故障排查的另一个重要步骤。我们...

    线上故障排查全套路,总有一款适合你1

    将PID转换为16进制后,通过`jstack pid | grep 'nid' -C5 --color`查看堆栈详情。重点关注`WAITING`和`TIMED_WAITING`状态的线程,因为它们可能表示阻塞或等待资源,而`BLOCKED`状态则通常与锁有关。可以使用`cat ...

    jvm排查cpu占用过高的线程

    问题描述: cpu占用过高,服务器卡死,问题排查 ...3、使用 printf ‘%x\n’ PID (PID为上一步中获取到的线程号)转换成对应的16进制PID 5c7e(为什么要转换,因为用jstack工具导出的信息里面线程对应的nid是1

    详解Java线程堆栈

    Java线程堆栈是一种强大的诊断工具,能够帮助开发者快速定位多线程应用程序中的问题。通过分析线程堆栈,可以找到系统中各种问题的根源,如系统无缘无故CPU过高、系统挂起、系统运行越来越慢、性能瓶颈、线程死锁、...

Global site tag (gtag.js) - Google Analytics