Operating System - HP-UX
1823273 Members
3118 Online
109648 Solutions
New Discussion юеВ

Is there a way to get performance data at the thread level?

 
SOLVED
Go to solution
Gino Castoldi_2
Honored Contributor

Is there a way to get performance data at the thread level?

Hi,

Is there a way to get performance data at the thread level? Can Glance or MWA do this?
Is there some other way? We are trying to get this information from a Sun Solaris server (8).

10 points to any good answer.
Thank you
Gino

4 REPLIES 4
John Bolene
Honored Contributor
Solution

Re: Is there a way to get performance data at the thread level?

Not with the current set of performance indicators as they only get down to the process level.

You can get an idea of transaction wallclock time if you add ARM calls and use transaction tracker.
It is always a good day when you are launching rockets! http://tripolioklahoma.org, Mostly Missiles http://mostlymissiles.com
Martin Johnson
Honored Contributor

Re: Is there a way to get performance data at the thread level?

Glance can give you thread performance data, but only on HPUX. MWA does not have thread data, except for thread count (PROC_THREAD_COUNT).

HTH
Marty
Michael Steele_2
Honored Contributor

Re: Is there a way to get performance data at the thread level?

This is for user threads and not system?

Problem is being able to drill down low enough to capture CPU info with millions of transactions per second, as processes bounce from CPU to CPU executing, and then accurately parse the tome in a real time manner.

Found this on the internet though:

"...TNF execution traces mainly serve as a debugging aid during software development and for performance tuning. TNF is especially useful for debugging and tuning multi-threaded programs because a TNF probe automatically records thread-specific information (thread IDs, process IDs, etc.) in the event records written to a trace file..."

http://developers.sun.com/solaris/articles/tnf.html
Support Fatherhood - Stop Family Law
mark suhovecky
New Member

Re: Is there a way to get performance data at the thread level?


Gino-

In Solaris, there's a -L option to the ps command that will break up the process time by LWP (lightweight process). For example:

> ps -p 581
PID TTY TIME CMD
581 ? 1:03 nscd

> ps -Lp 581
PID LWP TTY LTIME CMD
581 1 ? 0:00 nscd
581 2 ? 0:00 nscd
581 3 ? 0:00 nscd
581 4 ? 0:25 nscd
581 5 ? 0:00 nscd
581 12 ? 0:00 nscd
581 7 ? 0:05 nscd
581 8 ? 0:07 nscd
581 9 ? 0:25 nscd
581 13 ? 0:00 nscd
581 14 ? 0:00 nscd

So in this example, there are 14 LWP comprising nscd, and 4 & 9 are doing most of the work.

The caveat here is that not all threads will be LWP that are visible to the kernel. For instance, ps -L on a java JVM will show you the persistent therads within the JVM, but may not show you user threads created by the application, depending on your JVM and its configuration.

I should note that my example was run on SUN OS 5.7. I'm assuming ps works the same in 8.

Hope this helps,

Mark