I was having the same problem today, and it turned out to be an indexing thread that was occupying the CPU. I had recently added quite a bit of files to a project and had forgotten about it. I realize it’s not likely that anyone else has this problem, but it might be useful to post how I investigated it.
I’m running Ubuntu 12.10 with STS based on eclipse Juno.
-
Start eclipse from the command line and redirect output to a file so we can get a thread dump
-
Allow it to settle for a bit, then get a listing of the cpu usage for each thread:
ps -mo 'pid lwp stime time pcpu' -C java. Here’s a sample of the output that identified my cpu-hungry thread:PID LWP STIME TIME %CPU 6974 - 07:42 00:15:51 133 7067 07:42 00:09:49 **86.1** -
Convert the thread id (in my case
7067) to hex0x1b9b(e.g. in the command line using:printf "0x%x\n" 7067) -
Do a thread dump of the java process using
kill -3, as in:kill -3 6974. The output is saved in the file you redirected stdout when you started eclipse -
Open the file and look for the hex id of the thread:
"Link Indexer Delayed Write-10" prio=10 tid=0x00007f66b801a800 nid=**0x1b9b** runnable [0x00007f66a9e46000] java.lang.Thread.State: RUNNABLE at com.ibm.etools.references.internal.bplustree.db.ExtentManager$WriteBack.r