Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm interested in the current usage of cpu - precisely cpu% and wait% - for each thread in a specific application. Is it possible to get that information from somewhere?

I know that top can split information per real thread (ones with pid), but it doesn't show the system/user/wait cpu usage split for each of them. I would also like some way to log that info. Do you know any apps (or apis) that can do that?

share|improve this question
up vote 3 down vote accepted

I'd look into SystemTap. This tool will certainly give you what you want. There is this example of profiling threads; don't know if it has all you want, but you could modify it so that it does.

share|improve this answer

Percent of cpu usage per thread you can get with ps command:

 ps -emo %cpu,pid,user,args

The way it is calculated is described in ps manpage:

Currently, it is the CPU time used divided by the time the process has been running (cputime/realtime ratio), expressed as a percentage.

share|improve this answer
I'm really interested in both cpu time and io-wait time. ps can't handle the second one unfortunately. – viraptor Jul 9 '09 at 12:41
note to self: replace -e by -C java and pid by spid for thread Ids in java app – kellogs Jan 25 '15 at 11:12
greater note to self: ps -To pcpu,tid -C java | sort -r -k1 | more for hog threads in a java app. ps --sort=pcpu achieves nothing; better rely on shell for the sorting part. – kellogs Jan 25 '15 at 11:35

Maybe have a look at htop, you can configure quite a lot with it.

share|improve this answer
unfortunately it cannot split the cpu on user/system/wait time for a specific thread - only for the whole machine – viraptor Jul 9 '09 at 12:37

Did you tried sar? It can fetch a lot of information even on pid level.

share|improve this answer

Nagios and PNP

Works awesome... little configuration.

share|improve this answer

I have stumbled on this on a embedded system where we don't have the fancy tools to look in to this stuff.

For this, I have used cpuacct cgroup and placed each thread into its own folder. This way I was able to measure their usage.

Hierarchy was looking like this:


Then I changed it to

|  -tid1
|  -tid2
|  -tid3
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.