> as we know, running out of swap space causes the kernel to start
> killing random processes, and every time this happens, a message
> "Out of memory for <program name>" is logged. The problem is,
> this doesn't tell me much which program actually used up all the
> swap space (possibly because of a bug).
>
> Here is my suggestion: in addition to the "Out of memory for ..."
> message, there should be a process listing similar to "ps m" (or,
> if that would overflow the syslog buffer - syslogd could be very
> slow to read it due to heavy swapping - at least a few processes
> which are using the largest amount of memory). This way, it
> would be easier to track down the program (or luser :-) causing
> the trouble.
>
> (Of course it would still be nice if we can handle "out of VM"
> situations more gracefully than we do it now, but this has been
> discussed many times already...)
One important thing it that root processes should get priority.
They could be ranked in order of importance:
everything root
something root - uid, euid, whatever
nothing root
Within a rank, kill the biggest thing for now. (That would be Netscape.)
After per-user memory tracking is in place, go for a process run by
some piggy user.
I don't think this means enough to me, although xv with a 24-bit 1500x2000
image once killed my X server and left the console useless. Any ISPs out
there should be _real_ concerned - unless it is OK for users to bring
down the web server, sendmail, and other useless programs.