【问题标题】:Jstack and Not enough storage is available to process this commandJstack 和没有足够的存储空间来处理这个命令
【发布时间】:2010-10-28 17:49:30
【问题描述】:

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

【问题讨论】:

  • 这似乎是 Windows 错误消息。
  • 我在一个占用 280 mb 的 Tomcat 上安装了它。
  • 还看了这个问题 - stackoverflow.com/questions/222108/… 它没有帮助,因为 jconsole 看不到应用程序。

标签: java jstack


【解决方案1】:

我最近在 Win2008r2 上遇到了这个问题,我想我会分享我的解决方案,因为我花了一段时间才弄清楚。 Rob's comment about psexec -s 是为我做的。

看来,由于用户上下文,在 Vista 和更高版本的 jstack 上不适用于服务。它与记忆无关。我怀疑这与人们在 2003 年通过远程桌面看到此问题的原因相同,除非您在 mstsc 上使用 /admin 或 /console 开关。在 Vista 中,加强的安全性可能是破坏它的原因。

从 cmd 窗口启动我的应用程序运行良好,但这并不能帮助我调试我们的标准安装。启用 java 调试端口(对于 VisualVM、Eclipse 或大多数 Java 调试器)需要重新启动应用程序,因此如果您尚未启用调试,您可能会丢失您可能试图捕获的状态。在我的用户凭据下启动服务不起作用 - 我对此有点惊讶。但是 psexec -s 从系统上下文运行 jstack,这就像一个魅力。哦,如果 UAC 已打开,您需要从提升的 cmd 提示符运行 psexec。

【讨论】:

【解决方案2】:

过去,当 JVM 在 Windows 2003 上作为 Windows 服务运行时,我已经看到了这种情况。

首先,检查这是否是issue with the TMP directory

其次,jstack(或其他实用程序,如 jconsole)不会连接到本地进程,除非它在同一个会话中运行。如果服务以特定用户身份运行,您可以通过登录到同一会话进行连接。如果您使用的是远程桌面,您可以使用“mstsc /admin”(以前是 /console)连接并尝试再次运行 jstack。如果这不能解决问题,请务必检查以确保 TMP 目录设置正确。

如果服务作为 LocalSystem 运行,上述过程可能不会有太大帮助。我不知道是否有办法登录到与 LocalSystem 相同的会话。

其他一些替代方法可能是为远程监控设置进程并使用 jvisualvm(从服务器本身或另一台机器)通过端口连接并执行线程转储。

【讨论】:

  • 如果它作为本地系统运行的解决方案:使用登录帐户使用“mstsc /admin”连接(不确定它需要拥有的确切权限,我的是在管理员组中)并使用 Sysinternals psexec 工具如下: psexec -s "%JAVA_HOME%\bin\jstack.exe" PID >stack.txt 其中 PID 是您的进程的进程 ID。您可能还需要根据您的特定环境替换 JDK 的实际路径。
【解决方案3】:

我们在 Windows 机器上运行 JStack 时遇到了问题,即使是一个普通的应用程序 (1GB)。我们最终使用 Netbeans 进行了堆栈和堆分析。这似乎可以更好地处理转储文件的解析。 YMMV。

尝试使用 Netbeans 进行分析 - 它非常好。请注意,VisualVM 是一个精简的 NB 分析器,并带有 6u7。

【讨论】:

    【解决方案4】:

    psexec -s jstack PID >> c:\jstack.log 在同一台机器上完美运行。第一次花了一些时间,但我再次使用重定向到文件选项执行,它在几秒钟内完成。

    【讨论】:

      【解决方案5】:

      这是来自底层操作系统的错误消息。除了捕获抛出的异常之外,您在代码中无能为力来处理这个问题。嘘,Windows 是如此有限。

      http://technet.microsoft.com/en-us/library/cc978735.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-07
        • 2018-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多