Am 27.02.2015 um 18:07 schrieb Christopher Schultz:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Peter,

On 2/27/15 11:21 AM, Peter Irbizon wrote:
Hi Chris, here are my dumps
http://www.filedropper.com/jvmthreaddump. It looks like it has
something to do with memcached.

There are a bunch of RUNNABLE threads, but sometimes the term
"RUNNABLE" in a Java thread dump doesn't actually mean "taking CPU
time right now". For example, the "main" thread is RUNNABLE but it's
waiting on accepting a socket connection (for a SHUTDOWN command) and
so it's effectively blocked, taking zero CPU time.

I'm not entirely sure what the Memcached threads actually do, but I
think they are in a similar situation: waiting for code to request
some communication with Memcached.

I agree, hard to say from those dumps what's consuming the CPU, could be even GC threads. It's easier if threads are actually doing something, not just hanging around and waiting for work.

If you have commandline access, use

top -H -p PID

to show the list of threads of your process (replace PID by the process ID of your Java process) and check, what the thread numbers that are active on the CPU are. Hopefully it is only a few threads. Then take the thread number and translate it from decimal to hexadecimal and look for it in the header lines of your thread dumps.

Example:

The thread

"Memcached IO over {MemcachedConnection to localhost/127.0.0.1:11215}" prio=10 tid=0x025558d8 nid=0x34d3 runnable [0x9f4fe000]

from the dump will be shown on some Linuxes in top -H as thread id

0x34d3 = 13523

on others as

0x025558d8 = 39147736

If the thread ID doesn't occur in the thread dump at all, then it is native threads (unlikely but possible).

Regards,

Rainer

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to