Can a process be made immune to out-of-swap-space kills?

Doug Lee dgl at dlee.org
Sat Oct 29 21:21:15 PDT 2005


On Sun, Oct 30, 2005 at 01:59:53AM +0300, Giorgos Keramidas wrote:
> On 2005-10-29 16:34, Doug Lee <dgl at dlee.org> wrote:
> > Sometimes, I accidentally run something that eats up too much
> > memory and causes the pager to run out of swap space and start
> > shooting down processes to rectify the situation.  Sometimes,
> > the process chosen for demolition happens to be `screen.'
> > Since this process sorta manages a whole lot of others and, on
> > being zapped out of existence, leaves many of them running but
> > inaccessible, I find this choice decidedly inconvenient.
> >
> > Is there a way for me to force FreeBSD to leave `screen' (or
> > any other process) alone when selecting something to kill to
> > free memory?
> 
> Hmmm, why are user limits not applied?  Wouldn't it be a nicer
> way to solve the "rogue process" problems?

It turns out that the problem is not actually a memory request but a
huge temp file in an MFS filesystem... so maybe I need to figure out
how to limit the size of a mount_mfs so it can't blast processes out
of existence.

For the curious, I had tried a "sox ... reverse" operation, which
reverses a wav file (and apparently does it by making a temporary copy
rather than reading it backward, which I didn't know!), and the file
in question was a wav about 240 megabytes long.  This is a small home
FreeBSD box and almost never hosts any user but me.  My /tmp, a
mount_mfs, is about 150 meg in size, according to `df.'  The `sox'
command ate that up so fast that the sheer volume of swap failure
messages prevented me from acting quickly enough, and the pager shot
down a whole bunch of processes trying to save the world.  The list of
shot processes happened to include `screen,' and this created a number
of orphans that I had to kill subsequently myself, such as a stranded
`ssh' session to another machine.

So yes, I could stand for some tuning.  On a multi-user system, this
would be a most unwise way to leave things.

-- 
Doug Lee           dgl at dlee.org        http://www.dlee.org
SSB + BART Group         doug at bartsite.com   http://www.bartsite.com
"I before E, except after C, or when sounded like A, as in neighbor
and weigh, except for when weird foreign concierges seize neither
leisure nor science from the height of society."


More information about the freebsd-questions mailing list