Date: Sun, 30 Oct 2005 00:21:11 -0400 From: Doug Lee <dgl@dlee.org> To: Giorgos Keramidas <keramida@ceid.upatras.gr> Cc: freebsd-questions@freebsd.org Subject: Re: Can a process be made immune to out-of-swap-space kills? Message-ID: <20051030042111.GC9983@kirk.dlee.org> In-Reply-To: <20051029225953.GA56958@flame.pc> References: <20051029203404.GA9983@kirk.dlee.org> <20051029225953.GA56958@flame.pc>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Oct 30, 2005 at 01:59:53AM +0300, Giorgos Keramidas wrote: > On 2005-10-29 16:34, Doug Lee <dgl@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@dlee.org http://www.dlee.org SSB + BART Group doug@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."
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051030042111.GC9983>