问题标签 [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.

0 投票
5 回答
27710 浏览

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 线程建立连接吗?这么近,又这么远……

0 投票
6 回答
17345 浏览

java - Windows 上的 Java 堆栈跟踪

我需要获取在使用 Windows 的客户端计算机上运行的 JVM 进程的堆栈跟踪。

客户端安装了 JRE,但没有安装 JDK。

我想使用 JStack,但它没有安装,我们无法在客户端机器上安装 JDK。我还尝试使用 Java Webstart Session 中的 AdaptJ 堆栈跟踪产品,但这不起作用,因为我们远程进入并收到关于不是以指定 PID 启动应用程序的会话的错误。

本质上,我想要一种在不安装 JDK 的情况下安装 JStack 的方法。

0 投票
4 回答
883 浏览

c++ - C++ 中的 jstack 等价物

jstack 在检查实时运行进程的堆栈跟踪方面对我很有帮助。

C++ 中是否有任何工具可以执行此任务。我正在使用 Solaris/GCC 编译器。

实际上 GDB/DBX 可以做到这一点。但我的过程有时会挂起,很少见。所以当它挂起时,我想知道它哪里出错了。只需实时跟踪即可。

谢谢 DL 库马尔

0 投票
5 回答
27209 浏览

java - Jstack 和没有足够的存储空间来处理这个命令

我正在尝试在我的 java 应用程序上运行 jstack 命令。应用程序比较大,运行在 jboss AS 内,占用大约 4gb 的内存。操作系统为 Windows Server 2003 标准版。每次我得到一个错误“没有足够的存储空间来处理这个命令”。有足够的内存、16gb 和磁盘空间。那么,有什么想法吗?

0 投票
3 回答
12574 浏览

java - Java 线程:解释正在运行的 JVM 的线程状态

Java 线程始终处于以下十种状态之一:

未使用的状态 ( UNINITIALIZED) 已从列表中省略。

虽然上面给出了状态的定义,但我正在寻找“经验法则”来解释正在运行的应用服务器的给定线程状态设置。而且,更具体地说:

假设一个实时应用服务器在不同时间点具有以下线程统计信息(使用jstack获得):

  • 100 线程: 35 BLOCKED, 65IN_NATIVE
  • 113 线程: 35 BLOCKED, 77 IN_NATIVE, 1IN_VM
  • 52 线程: 38 BLOCKED, 1 IN_JAVA, 6 IN_NATIVE, 7IN_VM
  • 120 线程BLOCKEDIN_JAVA39、1、80IN_NATIVE
  • 94 线程:BLOCKED34、59、1IN_NATIVEIN_NATIVE_TRANS

对于五个统计数据中的每个线程 - 关于整个 JVM 状态可以推断出什么?即“在这种情况下,JVM 看起来正在空闲等待请求”,“机器正忙于处理请求”等。

0 投票
2 回答
9941 浏览

java - 帮助理解 jstack 输出

我有一个桌面 Java/Swing 应用程序,它通过 Java Webstart 部署(客户端在 XP 上使用 Java 6u20)。我收到了来自用户的应用程序挂起的间歇性报告。我在挂起期间设法登录到这样的系统,发现 UI 没有被绘制(好像 EDT 被阻止了)。

我使用 jstack 列出线程;我没有看到任何关于输出死锁的提及,而且由于我对 jstack 很陌生,所以我不确定我还应该寻找什么。

我不得不编辑堆栈跟踪以使其适合堆栈溢出限制,希望没有遗漏任何重要的内容。

谢谢,
菲尔

0 投票
3 回答
5863 浏览

java - 在正在运行的 JVM 上执行 jstack 有多“昂贵”?

我正在考虑编写一个脚本

  1. 每分钟(或每五分钟)运行一次
  2. 在生产环境中针对正在运行的 JVM 运行 jstack
  3. 解析 jstack 输出并统计我感兴趣的内容
  4. 通过在另一台服务器上集中安装 Cacti 导出 24/365 绘图结果

但我不知道 jstack 在运行的 JVM 上的成本或侵入性如何。在正在运行的 JVM 上执行 jstack 的成本是多少?我是在为一个受伤的世界做好准备吗?

0 投票
1 回答
3346 浏览

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 中

是单独下载吗?还是包含在不同的修订版中?

0 投票
2 回答
2758 浏览

java - 死锁上的奇怪线程转储

在我们的 java 应用程序启动过程中,我们遇到了一个奇怪的死锁。当我在应用程序上运行 jstack 进行调查时,我看到 AWT-EventQueue 在 Object.wait() 中,但线程仍被标记为 RUNNABLE。我已经包含了线程转储的相关部分,我希望有人可以对这个问题有所了解。

另外,我注意到这个线程,其中提到可能涉及访问静态变量。在我们的应用程序中也是如此。有问题的 getEAOTableLite 中的行引用了一个静态方法。

0 投票
4 回答
22533 浏览

java - 如何通过 JMX 创建线程转储?

我有一个作为 Windows 服务运行的 Tomcat,并且已知这些 Tomcat 不能很好地与 jstack 一起使用。另一方面,jconsole 运行良好,我可以看到单个线程的堆栈(我正在连接到“localhost:port”来访问它)。

如何使用 jconsole 或类似工具将所有线程堆栈转储到文件中?(类似于 jstack)