ある時点で CPU 使用率が 100% になり、同時にスリープ状態になる Java プログラムがあります。プログラムはマルチスレッドではありません。
周りを見回すと、その原因として最も可能性が高いのは、バグまたはガベージ コレクションに関して Java インタープリターを実行する方法の不一致であると思います。100% の CPU 使用率は GC によるものとしか考えられません。Xmx を使用してプログラムを実行するのに十分なメモリを割り当てていますが、プログラムは割り当てた量に近くても実行されません。私が割り当てる量も、マシンで使用可能な合計メモリよりもはるかに少ないです。
私はこれを見つけました:
http://code.google.com/p/spymemcached/issues/detail?id=279
また、stackoverflow.com では次のような言及もありました。
それでも、解決策を見つけることができませんでした。これは JVM のバグですか? もしそうなら、どうすれば修正できますか?
編集: ここに jstack 出力のペーストを追加しました: http://pastebin.com/Au0V9FCN