How does one know how many thread a process owns?
David Xu
davidxu at freebsd.org
Wed Apr 13 00:53:12 PDT 2005
Scott Long wrote:
> Jiawei Ye wrote:
>
>>> From top in pkgsrc, one can know that a certain process has some
>>
>> number of LWP in it.
>> load averages: 1.89, 1.72, 1.68; up
>> 119+05:28:10 13:30:48
>> 154 processes: 152 sleeping, 1 running, 1 on cpu
>> CPU states: % idle, % user, % kernel, % iowait, %
>> swap
>> Memory: 1024M real, 414M free, 841M swap in use, 1956M swap free
>>
>> PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND
>> 21891 bond 1 4 2 19M 1864K run 31.7H 77.04%
>> upd_twd_15min
>> 17153 bond 1 50 2 82M 6164K sleep 37:37 12.98%
>> dataserver.tsk
>> 17151 bond 1 53 2 82M 81M sleep 41:57 0.96%
>> dataserver.tsk
>> 13742 otc 1 53 2 30M 21M sleep 3:31 0.89%
>> dataserver.tsk
>> 17204 mtrs 1 53 2 82M 6144K sleep 2:47 0.67%
>> dataserver.tsk
>> 17321 mtrs 1 53 2 25M 7908K sleep 2:21 0.49% otcmgr.tsk
>> 16250 root 1 59 0 4136K 2224K sleep 0:00 0.47% sshd
>> 13745 otc 1 53 2 30M 2496K sleep 2:55 0.36%
>> dataserver.tsk
>> 3821 jessica 1 59 0 31M 4816K sleep 6:25 0.34%
>> dataserver.tsk
>> 17227 bond 1 53 2 25M 7908K sleep 2:46 0.31% otcmgr.tsk
>> 17553 otc 1 53 2 17M 1208K sleep 0:46 0.18%
>> icbc_pricing
>> 16269 leafy 1 45 0 3360K 1688K sleep 0:00 0.13% bash
>> 17202 mtrs 1 53 2 82M 19M sleep 1:08 0.12%
>> dataserver.tsk
>> 17154 bond 1 53 2 82M 8004K sleep 0:35 0.12%
>> dataserver.tsk
>> 13746 otc 1 53 2 30M 5136K sleep 0:37 0.11%
>> dataserver.tsk
>>
>> In our top, show threads does not tell you how many threads exactly
>> exists in a process, is there any way to imitate the other top's
>> behaviour?
>>
>> Jiawei
>
>
> With KSE threads (the default libpthread.so library), the kernel doesn't
> know about all of the process-scope threads that are alive it only
> knows about the ones that are running currently or are blocked within
> the kernel. These are not the same as LWP, since they are scheduled in
> userland and thus are somewhat invisible to the kernel. There are
> various ways to set libpthread to create only process-scope threads that
> look a little more like LWP, or you can switch to the libthr.so library
> that exclusively creates 1:1 threads that are always visible to the
> kernel.
>
> Scott
I believe he wants to see total threads number in a process. add a column
to top to display total kernel threads in per-process, p_numthreads in proc
structure is what you need . :)
David Xu
More information about the freebsd-current
mailing list