问题标签 [jstack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 获取 Java 线程 id 和失控 Java 线程的堆栈跟踪
在我最繁忙的生产安装中,有时我会得到一个似乎陷入无限循环的单线程。经过大量研究和调试,我还没有弄清楚谁是罪魁祸首,但似乎应该是可能的。以下是血淋淋的细节:
当前调试说明:
1) ps -eL 18975向我显示 Linux pid 问题子线程,19269
2) jstack -l 18975表示没有死锁,jstack -m 18975不起作用
3)jstack -l 18975确实给了我所有线程的堆栈跟踪(〜400)。示例线程堆栈(而不是问题):
4) ps -eL 输出的线程 ID 与 jstack 的输出不匹配,或者至少我看不到它。(jstack 文档有点稀疏。)
5) 没有繁重的 IO、内存使用或其他相应的活动线索可供使用。
平台:
- 爪哇 6
- 雄猫 6
- RHEL 4(64 位)
有人知道我如何从 linux ps 输出到我的问题子 java 线程建立连接吗?这么近,又这么远……
java - Windows 上的 Java 堆栈跟踪
我需要获取在使用 Windows 的客户端计算机上运行的 JVM 进程的堆栈跟踪。
客户端安装了 JRE,但没有安装 JDK。
我想使用 JStack,但它没有安装,我们无法在客户端机器上安装 JDK。我还尝试使用 Java Webstart Session 中的 AdaptJ 堆栈跟踪产品,但这不起作用,因为我们远程进入并收到关于不是以指定 PID 启动应用程序的会话的错误。
本质上,我想要一种在不安装 JDK 的情况下安装 JStack 的方法。
c++ - C++ 中的 jstack 等价物
jstack 在检查实时运行进程的堆栈跟踪方面对我很有帮助。
C++ 中是否有任何工具可以执行此任务。我正在使用 Solaris/GCC 编译器。
实际上 GDB/DBX 可以做到这一点。但我的过程有时会挂起,很少见。所以当它挂起时,我想知道它哪里出错了。只需实时跟踪即可。
谢谢 DL 库马尔
java - Jstack 和没有足够的存储空间来处理这个命令
我正在尝试在我的 java 应用程序上运行 jstack 命令。应用程序比较大,运行在 jboss AS 内,占用大约 4gb 的内存。操作系统为 Windows Server 2003 标准版。每次我得到一个错误“没有足够的存储空间来处理这个命令”。有足够的内存、16gb 和磁盘空间。那么,有什么想法吗?
java - Java 线程:解释正在运行的 JVM 的线程状态
Java 线程始终处于以下十种状态之一:
未使用的状态 ( UNINITIALIZED
) 已从列表中省略。
虽然上面给出了状态的定义,但我正在寻找“经验法则”来解释正在运行的应用服务器的给定线程状态设置。而且,更具体地说:
假设一个实时应用服务器在不同时间点具有以下线程统计信息(使用jstack获得):
- 100 线程: 35
BLOCKED
, 65IN_NATIVE
- 113 线程: 35
BLOCKED
, 77IN_NATIVE
, 1IN_VM
- 52 线程: 38
BLOCKED
, 1IN_JAVA
, 6IN_NATIVE
, 7IN_VM
- 120 线程
BLOCKED
:IN_JAVA
39、1、80IN_NATIVE
- 94 线程:
BLOCKED
34、59、1IN_NATIVE
IN_NATIVE_TRANS
对于五个统计数据中的每个线程 - 关于整个 JVM 状态可以推断出什么?即“在这种情况下,JVM 看起来正在空闲等待请求”,“机器正忙于处理请求”等。
java - 帮助理解 jstack 输出
我有一个桌面 Java/Swing 应用程序,它通过 Java Webstart 部署(客户端在 XP 上使用 Java 6u20)。我收到了来自用户的应用程序挂起的间歇性报告。我在挂起期间设法登录到这样的系统,发现 UI 没有被绘制(好像 EDT 被阻止了)。
我使用 jstack 列出线程;我没有看到任何关于输出死锁的提及,而且由于我对 jstack 很陌生,所以我不确定我还应该寻找什么。
我不得不编辑堆栈跟踪以使其适合堆栈溢出限制,希望没有遗漏任何重要的内容。
谢谢,
菲尔
java - 在正在运行的 JVM 上执行 jstack 有多“昂贵”?
我正在考虑编写一个脚本
- 每分钟(或每五分钟)运行一次
- 在生产环境中针对正在运行的 JVM 运行 jstack
- 解析 jstack 输出并统计我感兴趣的内容
- 通过在另一台服务器上集中安装 Cacti 导出 24/365 绘图结果
但我不知道 jstack 在运行的 JVM 上的成本或侵入性如何。在正在运行的 JVM 上执行 jstack 的成本是多少?我是在为一个受伤的世界做好准备吗?
java - Java 1.5 的 JStack?
我想在 Java 1.5 VM 中使用 JStack。我在几个网页中发现此版本存在一个 JStack 版本,但我找不到。
我有 JDK 的 1.5.0_22 和 1.5.0_10 版本,不包括 jstack。它包含在 Java SDK 1.6 中
是单独下载吗?还是包含在不同的修订版中?
java - 死锁上的奇怪线程转储
在我们的 java 应用程序启动过程中,我们遇到了一个奇怪的死锁。当我在应用程序上运行 jstack 进行调查时,我看到 AWT-EventQueue 在 Object.wait() 中,但线程仍被标记为 RUNNABLE。我已经包含了线程转储的相关部分,我希望有人可以对这个问题有所了解。
另外,我注意到这个线程,其中提到可能涉及访问静态变量。在我们的应用程序中也是如此。有问题的 getEAOTableLite 中的行引用了一个静态方法。
java - 如何通过 JMX 创建线程转储?
我有一个作为 Windows 服务运行的 Tomcat,并且已知这些 Tomcat 不能很好地与 jstack 一起使用。另一方面,jconsole 运行良好,我可以看到单个线程的堆栈(我正在连接到“localhost:port”来访问它)。
如何使用 jconsole 或类似工具将所有线程堆栈转储到文件中?(类似于 jstack)