簡體   English   中英

解決:JVM永久掛起,無CPU使用情況或I / O

[英]Solved: JVM hangs forever with no CPU usage or I/O

我遇到了一個很奇怪的問題,那就是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 Java8。我可能會嘗試OpenJDK,但是我懷疑它是否可以工作。
  5. IntelliJ版本:我已經嘗試了IntelliJ 13至14.1。 所有表現出相同的行為。
  6. 內存有限:我有16G RAM和16G交換空間,因此內存不應成為限制因素。

內核日志看起來並不可疑。 我無法遠程獲取任何類型的日志來指示出了什么問題。

任何想法?

更新(2015/04/29):在我不小心踢了電源線並冷重啟計算機后,問題似乎已經解決了……仍然是個謎,但IntelliJ到目前為止仍然可用。

需要檢查的一些事情-Java IDE最好在大量內存下運行。 我通常為我的開發工作站要求至少8G的內存。 -確保所有內容均具有穩定版本,在Ubuntu上查找已知的工作版本/配置-必須在IntelliJ IDEA版本<14中手動分配內存。例如: 如何在Mac上的IntelliJ IDEA中增加IDE內存限制? -除了系統日志外,運行諸如top之類的工具,並在運行IDE時查看關於cpu和ram的情況

前一段時間,我在使用Eclipse時遇到了類似的問題。 問題是根本沒有交換位置;)-顯然16GB RAM應該不是問題。

您可以為Intellij發布JVM參數嗎? 我也有一個想法來創建另一個Intellij安裝程序(例如,回到14版本),看看是否存在類似的問題(還要比較這兩者之間的JVMs設置)。

編輯好,所以嘗試:

  1. 使用不同的JRE / JDK。 如果問題消失了,它將告訴我們更多信息。

  2. 您使用的是Linux,因此可以輕松監視幾件事-您說沒有CPU利用率或硬I / O。 但是你怎么知道呢? 也許收集一些統計信息會很有幫助-例如。 JVM本身或系統信息(您認為這是I / O問題)的jstat嘗試:

    iostat -hm -p sda 1

它將在1秒循環中打印sda的 I / O統計信息(如果您有其他光盤,請更改設備參數)(也可以更改)。 首先從系統開始,然后將輸出轉儲到文件中-可能在JVM掛起之前發生了某種“災難”。 注意: iostat有時在系統本身上不可用(在我的Linux Mint上不可用)-安裝然后打包sysstat即可使用該命令。

由於意外斷電而重新啟動后,似乎已經修復。.我見過的最奇怪的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM