Date: Mon, 24 Mar 2003 17:23:03 -0800 From: David Schultz <das@FreeBSD.ORG> To: Wes Peters <wes@softweyr.com> Cc: freebsd-arch@FreeBSD.ORG Subject: Re: Patch to protect process from pageout killing Message-ID: <20030325012303.GA4406@HAL9000.homeunix.com> In-Reply-To: <200303240823.48262.wes@softweyr.com> References: <200303240823.48262.wes@softweyr.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Thus spake Wes Peters <wes@softweyr.com>: > As promised, here's the patch to protect a process from being killed when > pageout is in memory shortage. This allows a process to specify that it > is important enough to be skipped when pageout is looking for the largest > process to kill. > > My needs are simple. We make a box that is a web proxy and runs from a > memory disk, using flash for permanent storage. The flash is mounted > only when a configuration write is needed, the box runs from the memory > disk. We've experienced a problem at certain customer sites where bind > will consume a lot (~30 MB) of ram and then pageout will kill the largest > process, which is usually either named or squid. This pretty much kills > the box. We'd much rather have pageout kill off some of the squid worker > processes, we can recover from that. Very nice. Inheritance of this attribute seems to be a contentious issue. Making inheritance tunable might be a good idea. You wouldn't be able to piggyback on rlimit, though. There's a significant userland component of this as well, although that's probably a job for another day. It basically consists of making it possible to specify that certain standard system daemons should have this attribute. > + (p->p_flag & P_PROTECTED) || > ((p->p_pid < 48) && (vm_swap_size != 0))) { > PROC_UNLOCK(p); > continue; The pid < 48 magic can probably go away, while you're at it. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030325012303.GA4406>