- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Linux/HotSpot VM 上,top -H
可以列出某个 java 进程的所有线程,因此可以发现繁忙线程的线程 id,因此我可以使用该线程 id 来查找 java jstack 输出中的线程(jstack 中的 nid 是 top -H 中线程 id 的十六进制转换)。
虽然 MacOS 平台上的 Hotspot VM 实现在使用 jstack 获取 Java 线程统计信息时使用 pthread_t
作为 nid
,但没有任何类似于 top -H
在 MacOS 上。那么有没有办法不用MXBean就能找到“繁忙”的Java线程呢?
或者谁能告诉我在MacOS上如何找到繁忙的Java线程的'nid',根据它我可以通过jstack找到相应的Java线程?
最佳答案
一个小更正:在 macOS 上,nid
不是 pthread_t
,而是通过 pthread_mach_thread_np(pthread_t)
获取的线程端口。
无论如何,不幸的是,macOS 上没有类似的 top -H
。但如果您只想找到一个繁忙的 Java 线程,则不需要。请改用 Java 分析器。
以下是如何使用 async-profiler
执行此操作:
./profiler.sh -d 10 -t -f profile.svg PID
这意味着:在线程模式 (-t
) 下分析 Java 进程 PID
十秒 (-d 10
) 并保存作为火焰图输出到 profile.svg
。您甚至不需要 jstack
- 配置文件已经突出显示 HitTest 门的线程及其 Java 堆栈跟踪。
作为火焰图的替代方案,您可以选择“传统” TreeView
通过指定 -f profile.html
而不是 -f profile.svg
。
关于java - MacOS 上 jstack 中的 nid 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58083047/
如果程序挂死,有时使用jstack查看进程中线程信息时,需要添加上-F参数,此时如果有死锁信息,则可能不会打印出死锁堆栈信息,使用jdb则可以查看当前死锁线程的运行堆栈。 如下模拟一个简单的死锁程
我们一直使用 jstack 从 JVM 输出线程转储,多年来我们一直使用 IBM Thread Analyzer分析线程和监视器。下面是分析器解析的 jstack (jstack -l PID > j
我正在尝试调试 Hadoop 中的性能问题,作为其中的一部分,我在不同的 hadoop 版本中多次捕获了 jstack,并在不同的 Java 版本上运行。当我的性能问题出现时,我得到一个可运行线程的
当我使用 jstack 询问核心转储文件时,出现此异常。我尝试过使用 sudo 但还是一样。 感谢您的帮助。 Attaching to remote server core.2941, please
是否有 jstack 的 python 等价物?我有一个挂起的进程,我真的很想看看它在做什么,因为我还没有重现开发中的缺陷。 最佳答案 Python GDB 关于Python 等同于 Jstack?,
我们在服务器上使用 jstack 来检测 Java 应用程序是否出现死锁。它不适用于我们的 Linux 服务器之一。我认为 O/S 版本是: $cat /etc/issue.net Red Hat E
我正在尝试在我的 java 应用程序上运行 jstack 命令。应用程序比较大,运行在 jboss AS 内,占用大约 4gb 的内存。操作系统为 Windows Server 2003 标准版。每次
我正在使用 32 位 Oracle Java 1.6.0 在 x86_64 CentOS 5.7 上运行 tomcat 5.5。 tomcat使用的JVM进程有6421 pid。 Tomcat 工作正
我正在运行 Ubuntu 服务器版,我想获取 Tomcat 的线程转储。 所以,我首先尝试找出tomcat使用的是哪个PID: $ jps -l 5809 sun.tools.jps.Jps 但它不存
一、概述 jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&q
我使用过 Samurai,我可以看到没有死锁并且有几个线程在等待,但我似乎无法确切地弄清楚哪个锁正在拖延进程。谁能帮我吗? 我不是在寻找人们猜测我的问题是什么,更多关于如何更改代码以使其更容易跟踪问题
这是运行中的 JVM 的 jstack 输出 "FooThread" prio=10 tid=0x00007f159c2ca000 nid=0x6e21 waiting on condition ..
我想生成自动线程转储。这是我正在使用的脚本: THREADDUMP_LOG_FILE="/tmp/tmpLog_`date +"%Y%m%d%H%M%S"`" pid=`ps axww
我有一个通过 Java Webstart 部署的桌面 Java/Swing 应用程序(客户端在 XP 上使用 Java 6u20)。我收到了来自应用程序挂起用户的断断续续的报告。我设法在挂起期间登录到
使用 jstack 我得到了一个正在运行的线程树。 以下 Thread.State 的含义是什么: 等待 TIMED_WAITING 可运行 tid 和 nid 是什么意思? 一个Thread的标题是
我有一个名为 my-app 的 Java 应用程序,它从特定用户 my-app-user 运行,我想每小时进行一次线程转储。我发现 jstack 与 JDK 捆绑在一起,我想用 -l 标志执行它。但是
我有一个 java 进程使用 BatchInserter 将大量数据从一堆 .csv 文件加载到 Neo4j 数据库中。我正在使用: OpenJDK 7 Ubuntu 12.04 Neo4j 2.0
jps/jstat/jstat 无法找到或附加到 java pid(由 Cassandra 用户拥有)。我尝试了软链接(soft link) sudo ln -s/tmp/hsperfdata_cas
我有一个关于 JVM 和 Jstack 之间使用的问题 如果 jvm 堆利用率很高,假设超过 90% 与 jstack 响应 jvm 之间有任何相关性 它会影响 Jstack 吗 最佳答案 总的来说,
Thread 10296: (state = IN_NATIVE) - sun.nio.ch.Net.connect0(boolean, java.io.FileDescriptor, java.n
我是一名优秀的程序员,十分优秀!