9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: erik quanstrom <quanstro@quanstro.net>
To: 9fans@9fans.net
Subject: Re: [9fans] protection against resource exhaustion
Date: Sun, 25 Jan 2015 09:41:35 -0800	[thread overview]
Message-ID: <44900c0d4896622fa8a9411b05efe730@brasstown.quanstro.net> (raw)
In-Reply-To: <0F748B67-FB11-464C-84FA-66B4E0B29918@9.offblast.org>

On Sat Jan 24 23:16:07 PST 2015, mischief@9.offblast.org wrote:

> You would need to implement something like ulimits to fix process
> exhaustion, or some kind of rate limit.  There are several forms of
> resource exhaustion in plan 9.  One other that comes to mind is cat
> /dev/random prevents other clients from making progress reading
> /dev/random, such as cpu.

this is the same route as oom killer, which can be depended on to kill
exactly the wrong thing at exactly the wrong time.  fixing things to be
oomkiller-proof tends to be an exercise in wack-a-mole.

about tail-calls mentioned elsewhere.  rc simple executes the file through
a system call and does not inspect its shebang line.  so there is no possibility
of optimization; rc doesn't know it's an rc script.  (and this problem
doesn't depend on the executible recursively executing itself being an rc script.)

i have eliminated the resrcwait() in the process allocation loop in my kernels.
this sounds much worse than it is.  the advantage is it breaks the loop and gets
the machine running again in a bounded amount of time.  the disadvantage
is one loses program state.  i've found it a win over all.  instead of getting paged
in the middle of the night, a few days later someone might mention that the
machine rebooted.  the logs are almost always intact, so debugging the issue
isn't too hard /during the middle of the day/.  :-)

- erik



  reply	other threads:[~2015-01-25 17:41 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-25  6:16 arisawa
2015-01-25  6:59 ` mischief
2015-01-25 17:41   ` erik quanstrom [this message]
2015-01-26 11:47     ` arisawa
2015-01-26 12:46       ` cinap_lenrek
2015-01-26 14:13       ` erik quanstrom
2015-01-27  0:33         ` arisawa
2015-01-27  1:30           ` Lyndon Nerenberg
2015-01-27  4:13             ` erik quanstrom
2015-01-27  4:22           ` erik quanstrom
2015-01-27  7:03             ` arisawa
2015-01-27  7:10               ` Ori Bernstein
2015-01-27  7:15                 ` lucio
2015-01-27 14:05                 ` erik quanstrom
2015-01-27  7:12               ` lucio
2015-01-27 14:10               ` erik quanstrom
2015-01-28  0:10                 ` arisawa
2015-01-28  3:38                   ` erik quanstrom
2015-01-28  6:50                     ` arisawa
2015-01-28  7:22                       ` lucio
2015-01-28  7:48                       ` Quintile
2015-01-28 13:13                       ` cinap_lenrek
2015-01-28 14:03                         ` erik quanstrom
2015-01-28 14:09                           ` lucio
2015-01-28 14:14                             ` erik quanstrom
2015-01-28 14:53                               ` lucio
2015-01-28 17:02                                 ` Skip Tavakkolian
2015-01-28 14:16                       ` erik quanstrom
2015-01-28 17:28                       ` Charles Forsyth
2015-01-28 17:39                         ` cinap_lenrek
2015-01-28 18:51                           ` Charles Forsyth
2015-01-29  3:57                             ` arisawa
2015-01-29  6:34                               ` erik quanstrom
2015-01-29  6:42                         ` erik quanstrom
2015-01-29  8:11                           ` arisawa
2015-01-27 10:53             ` Charles Forsyth
2015-01-27 14:01               ` erik quanstrom
2015-01-25  9:04 ` arisawa
2015-01-25 11:06   ` Bence Fábián

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44900c0d4896622fa8a9411b05efe730@brasstown.quanstro.net \
    --to=quanstro@quanstro.net \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).