Para saber que threads están consumiendo se puede hacer lo siguiente:

ps -eLo pid,lwp,pcpu,comm | sort -n -r +2 | grep -v "PID LWP %CPU COMMAND" | head -16

Nos saldrá algo similar a esto:

7038 2218 4.9 java
7038 594 4.8 java
7038 544 4.7 java
7038 4299 4.6 java
7038 4298 4.6 java
7038 2529 4.6 java

Lo que nos interesa es el valor que está en rojo.

Ahora para saber que están haciendo esos threads haremos lo siguiente:

strace -p lwp (pondremos el valor que sale en rojo, que es el identificador del thread)

Espero que a alguien le valga para algo....