java - 已解决 : JVM hangs forever with no CPU usage or I/O

标签 java linux ubuntu intellij-idea

我遇到了 JVM 非常频繁地永远挂起的奇怪问题。

当我的 Java IDE 经常挂起整个系统 GUI 时,我首先发现了这个问题。 IntelliJ IDEA 几乎每次启动时都会挂起索引。有时它会继续解决依赖关系,但最后总是挂起。当出现这种情况时,我可以输入 gnome-terminal,但命令似乎无法执行。我无法使用 Alt-F2 或类似方式启动新应用程序。

我不得不切换到文本控制台和“killall -9 java”来终止 IDEA 进程并取回控制权。 “kill -3 java”将不起作用。日志文件不包含任何相关内容,线程转储为空。一旦 IDE 挂起,jstack 就无法附加到进程。 “jstack -l pid”也挂起。 “jstack -F pid”无法附加到进程。 Visualvm 也挂起。

Java 进程的 CPU 使用率为 0%,并且没有进行 I/O。

我在使用 Eclipse 时观察到相同的行为。有时它在启动时挂起,有时在保存时挂起,有时在运行 Java 应用程序时挂起。

在纯文本 ttys 中执行的 Maven/sbt 构建会导致相同类型的挂起,所以我猜这不是窗口管理器/桌面环境/显示驱动程序问题。

我高度怀疑这是一个文件系统或 I/O 问题,但我不知道如何调试它。我试过 fsck 但没有成功,我的系统在不运行时工作得很好Java 程序。

我已经排除的事情:

  1. 权限问题:使用 sudo 运行 IntelliJ 没有帮助,100% 的时间挂起。
  2. 显示驱动程序:我已经尝试过 Nvidia 专有驱动程序和开源驱动程序 nouveau。没有帮助。
  3. 窗口管理器/桌面环境:我使用 Cinnamon,但我试过在 Unity 下运行 IntelliJ。没有帮助。
  4. Java 版本:我已经尝试过 Oracle Java 7 和 Oracle Java 8。我可能会尝试 OpenJDK,但我怀疑它是否有效。
  5. IntelliJ 版本:我尝试过 IntelliJ 13 到 14.1。所有人都表现出相同的行为。
  6. 内存有限:我有 16G RAM 和 16G 交换空间,因此内存不应成为限制因素。

内核日志看起来并不可疑。我无法远程获取任何类型的日志来指示出了什么问题。

有什么想法吗?

更新(2015 年 4 月 29 日):在我不小心踢到电源线并冷重启计算机后,问题似乎已自行解决...仍然是个谜,但 IntelliJ 目前可用。

最佳答案

一些要检查的东西 - Java IDE 在大量 ram 下运行最佳。我通常要求至少 我的开发工作站有 8G 内存。 - 确保你有一个稳定的版本,在 Ubuntu 上寻找已知的工作版本/配置 - 您必须在 IntelliJ IDEA 版本 < 14 中手动分配内存。例如:How to increase IDE memory limit in IntelliJ IDEA on Mac? - 除了系统日志,运行 top 等工具,查看运行 IDE 时 cpu 和 ram 方面的情况

关于java - 已解决 : JVM hangs forever with no CPU usage or I/O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29833105/

相关文章:

java - 我可以重新导入已删除的 .git 文件而不丢失代码吗?

node.js - NodeJS 宕机警报?

angularjs - Ubuntu:错误:EACCES,使用 Bower 安装时出现权限被拒绝错误

ubuntu apache2 mod_proxy 替换内部 url

java - 如何将 kafkacat 与消息中心一起使用

java - 如何转换 for 循环以找到 Java 流的第一次出现?

java - Intellij 窗口打开最小化

c - 自复制程序

linux - 你如何取消 crontab 中的 MAILTO?

linux - 内核模块中的 EXPORT_SYMBOL | insmod 期间的 undefined symbol