top incorrectly reporting process time
Ott Köstner
OttK at zzz.ee
Fri Nov 28 04:14:38 PST 2008
Mel wrote:
> On Friday 28 November 2008 11:52:26 Ott Köstner wrote:
>
>> Second computer FreeBSD 7.1-PRERELEASE #3 (exact copy / paste):
>>
>> # ps -ax|grep mysql; echo; ps -axH|grep mysql
>> 1015 con- I 0:00.01 /bin/sh /usr/local/bin/mysqld_safe
>> --defaults-extra-file=/var/db/mysql/my.c
>> 1079 con- S 582:49.60 [mysqld]
>>
>> 1015 con- I 0:00.01 /bin/sh /usr/local/bin/mysqld_safe
>> --defaults-extra-file=/var/db/mysql/my.c
>> 1079 con- S 2:00.40 [mysqld]
>> 1079 con- I 0:00.00 [mysqld]
>> 1079 con- I 0:01.32 [mysqld]
>> 1079 con- I 0:47.04 [mysqld]
>> 1079 con- I 0:03.56 [mysqld]
>> 1079 con- S 0:26.43 [mysqld]
>> 1079 con- S 3:13.97 [mysqld]
>> 1079 con- S 4:12.72 [mysqld]
>> 1079 con- S 0:03.72 [mysqld]
>>
>> 582 minutes is clearly wrong.
>>
>
> Not if it's the sum of all threads that lived and died during the lifetime of
> the process. It's value is taken from the kernel's idea of the runtime. With
> KERN_PROC_INC_THREAD set, it will look at the thread storage for active
> threads, including the 'main()' thread.
> I haven't looked into detail, but I suspect when a thread dies it gets added
> to process runtime, and is stored nowhere else.
>
>
I see. Thank You!
> Aside from the different machines, you also took 2 different daemons, which
> fits this:
> named uses a static thread pool, by design, sum(nthreads) will equal the
> process time
> mysqld uses a dynamic thread pool, sum(nthreads) is really
> sum(nthreads_active).
>
> I haven't looked into detail
>
>
I see.
Regards,
O.K.
More information about the freebsd-questions
mailing list