httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian Pane <brian.p...@cnet.com>
Subject Re: 2.0.29 high load avg
Date Wed, 09 Jan 2002 23:13:41 GMT
Aaron Bannert wrote:

>On Wed, Jan 09, 2002 at 02:58:17PM -0800, Brian Pane wrote:
>
>>On FreeBSD, is there a way to look at the syscalls active within the
>>kernel at a point in time?  On Solaris, running "adb -k" and using the
>>"$<threadlist" macro will give a stack trace of each thread in the
>>kernel--a mix of internal kernel threads and the threads executing the
>>internal implementation of each currently executing syscall.  If you
>>have something similar in FreeBSD, it should show whether daedalus has
>>a lot of syscalls blocked on, say, some global mutex within the kernel.
>>
>
>Not to detract from this discussion, but aren't only runnable kernel
>threads going to contribute to the run queue length? If we have a process
>blocking in a syscall, my understanding is that it isn't runnable and
>won't contribute to the load average. We need a bunch of processes
>waiting on a resource, like network, paging/memory, disk, or CPU to
>get the load average up that high.
>

My hypothesis is that we might see a spike in the run queue length if:
  1) a ton of threads get blocked on a mutex bottleneck, and
  2) they all wake up at once
I.e. the load will dip while things line up behind the lock, and then
jump up sharply when the blocking condition (whatever it is) goes away.

If that's not what's happening, getting a snapshot of the kernel threads
(or whatever the equivalent on FreeBSD is) would still be useful because
that would show what operations were running.

>Does anyone have a trace of the network/IO/disk/CPU metrics during one
>of these load spikes?
>

I don't know about disk or network metrics, but there's some CPU data
in http://www.apache.org/~gregames/vmstat

--Brian



Mime
View raw message