On Wed, 1 Oct 2008, Gary Palmer wrote:
Periodically logging "ps -auxw" output to a file would be useful, as
ideally you'd gradually see the list get longer and longer over time; it's
possible you have many zombie processes as a result of a parent which is
not reaping its children (calling waitpid(2) or its friends).
"ps alxw" may be of interest in addition to "ps auxw" as it displays what
the processes are waiting on. It could conceivably be a problem of some
kind at the filesystem level. I've seen situations before where a problem
escalates to the point where "ls /" hangs, and at that point you're stuck
with an unresponsive box.
If you want an even greater level of detail than ps -l, you can use procstat
-k to generate kernel stack traces for all user/kernel threads. Wait channels
are very useful, but they only tell you what the code that invoked the wait
thinks it is for, not how that code was reached. A classic example is waiting
on an exhausted UMA zone -- you get a uma wait channel, but no indication of
what subsystem performed the memory allocation... This required FreeBSD 7.1
and higher, however. (Obviously, the same can be done easily using DDB, but
that's hard on a box without a serial console, and requires interrupting the
flow of the operating system, compiling with DDB, etc).
Robert N M Watson
Computer Laboratory
University of Cambridge
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"