簡體   English   中英

JVM消耗一個CPU的100%

[英]JVM consuming 100% of one CPU

我們有一個在Ubuntu Server 12.04和Java上運行的應用程序。

java -version return:

Java版本“ 1.7.0_40”

Java(TM)SE運行時環境(內部版本1.7.0_40-b43)

Java HotSpot(TM)64位服務器VM(內部版本24.0-b56,混合模式

我們還有其他具有相同技術但沒有問題的應用程序。

服務器信息:RAM:2G操作系統:Ubuntu Server 12.04 Nb CPU:2

應用程序語言為scala。

運行一段時間后,JVM似乎進入睡眠狀態。 一個CPU繼續以100%旋轉。

JVM選項:

-Xms1g -Xmx1g -XX:+ HeapDumpOnOutOfMemoryError -XX:+ UseParNewGC -XX:+ UseConcMarkSweepGC -XX:+ PrintGCDetails -XX:+ PrintGCTimeStamps -XX:+ PrintTenuringDistribution -XX:-DisableExplicitGC -XX:CMSFullGCsBeforeCompactionEnabled -XX -XX:+ CMSIncrementalMode -XX:MaxGCPauseMillis = 1500 -XX:GCTimeRatio = 9 -XX:CMSInitiatingOccupancyFraction = 50 -XX:-UseGCOverheadLimit -XX:MaxHeapFreeRatio = 60

使用jstat -gcutil [PID],我已經看到FGC快速增長。

您對這個問題有想法嗎?

謝謝

您對這個問題有想法嗎?

可能有很多東西。 但是(IMO)最可能的解釋是您的應用程序中存在一個錯誤,該錯誤表現為無限循環。

將調試器附加到JVM。 或者,如果您無法執行此操作,請向其發送必要的信號,以使其生成線程轉儲到控制台輸出流。 然后分析轉儲,看看是否有任何線索。

這不是我們可以給您一個神奇答案的問題。 根據您對應用程序的了解以及您自己在分析/調試中的辛勤工作,您很可能需要自己解決問題。 (這是Scala的事實意味着這也可能是Scala編譯器或運行時中的錯誤。)

暫無
暫無

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

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