2011-12-20 20 views
0

昨天,我用頂部看看爲什麼我的Quartz作業停止運行。這將導致CPU 99%NI?

並且頂部顯示所有cpus與99%ni?

哪會引起cpu改變不錯值這麼頻繁?

Java中的死循環是否會導致這種情況?

環境:

  1. 的Linux 2.6.18肯納
  2. JDK:的Sun Java 1.6.0_23
  3. 作爲JBoss 4.2.2.GA

top result

+0

問題是什麼? – jman 2011-12-20 05:12:04

+0

「Java中的死循環會導致這種情況嗎?」 - 是的。 – 2011-12-20 05:19:24

+0

@Stephen C爲什麼如果我有一個死循環,linux會改變它的好值? – jilen 2011-12-20 08:04:01

回答

0

採取java進程的線程轉儲 - kill -3 pid或jstack -l PID。從中你可以找出哪個方法正在執行。如果您在一段時間內進行多次轉儲,則可以確定是否存在無限循環 - 每次都會在堆棧跟蹤的頂部顯示相同的方法。

2

您可以使用可視VM和JVM配置文件連接到JVM。它在啓動時可能需要特殊的參數,但是如果你這樣做,你可以連接它並讓探查器告訴你下次發生什麼問題。