|
| Problem | How to match a thread ID (TID) in TPROF to the pthread_t in DBXTrace -a output and to native ID in a javacore. | | | | Solution | The following examples of documentation were gathered as a result of following the MustGather: No response (hang) or performance degradation on AIX technote.
The following commands gather the output used in this example:
TPROF: tprof -k -s -e -x sleep 60 DBXTrace: ./dbxtrace_aix.sh -a [AppServer PID]> dbxtrace.out JAVACORE: kill -3 [Appserver PID]
Here is a sample output from TPROF:
Process PID TID Total Kernel User Shared ======= ======= === ===== ====== ===== ====== java 14254 83603 10675 10675 0 0 java 14254 80450 9677 887 0 6730
You can see that a large amount of CPU is used by the Java™ process. The amount under the Total column is the total number of ticks that process used. These should be ordered from high to low.
Looking at the thread id (TID), search the DBXtrace output for the TID. In this case it would be 83603. The following is what you should see from the search.
thread state-k wchan state-u k-tid mode held scope function $t9 run running 83603 u no sys lkmonitor
general: pthread addr = 0x30ccf4f8 size = 0x18c vp addr = 0x30ba4104 size = 0x284 thread errno = 2 start pc = 0x300555a0 joinable = no pthread_t = 809 scheduler: kernel = user = 1 (other) event : event = 0x0 cancel = enabled, deferred, not pending stack storage: base = 0x30c8f000 size = 0x40000 limit = 0x30ccf4f8 sp = 0x30ccdb18
In this case, the thread is $t9 and from this section of the dbxtrace. We need the pthread_t value to find the corresponding thread in the JAVACORE.
In this example we will need to use the value 809.
Bring up the JAVACORE and search for the pthread_t value of 809. Here is an example of what you should see in the javacore. The pthread_t value will correlate to the native ID. It should be proceeded with a Ox.
------------------------------------------------------------------- "Pooled ORB request dispatch WorkerThread" (TID:0x800334a8, sys_thread_t:0x30b816f8, state:R, native ID:0x809) prio=5 at java.lang.reflect.Method.copy(Method.java:105) at java.lang.reflect.Constructor.getParamTypes(Constructor.java:77) -------------------------------------------------------------------
Review the stack trace and determine what the thread was processing at the time of the high CPU. | |
| | |
| |
|
Product categories: Software, Application Servers, Distributed Application & Web Servers, WebSphere Application Server, Java SDK Operating system(s): AIX Software version: 3.5, 4.0, 5.0, 5.1, 6.0 Software edition: Advanced Reference #: 1138359 IBM Group: Software Group Modified date: 2004-07-06
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.
|