Tom Lane wrote:
> "Jeroen T. Vermeulen" <[EMAIL PROTECTED]> writes:
> > Given the right allocation proportions, this may mean that in the end the
> > kernel has no way to handle a shortage gracefully by causing fork() or
> > allocations to fail.
> 
> Sure it does.  All you need is a conservative allocation policy: fork()
> fails if it cannot reserve enough swap space to guarantee that the new
> process could write over its entire address space.  Copy-on-write is
> an optimization that reduces physical RAM usage, not virtual address
> space or swap-space requirements.
> 
> Given that swap space is cheap, and that killing random processes is
> obviously bad, it's not apparent to me why people think this is not
> a good approach --- at least for high-reliability servers.  And Linux
> would definitely like to think of itself as a server-grade OS.

BSD used to require full swap behind all RAM.  I am not sure if that was
changed in BSD 4.4 or in later BSD/OS releases, but it is no longer
true.  I think now it can use RAM or swap as reserved backing store for
fork page modifications.  However, when the system runs of of swap, it
hangs!

> > After that, where do you go?  Try to find a reasonable process to shoot
> > in the head.  From what I heard, although I haven't kept current, a lot
> > of work went into selecting a "reasonable" process, so there will be some
> > determinism.
> 
> Considering the frequency with which we hear of database backends
> getting shot in the head, I'd say those heuristics need lots of work
> yet.  I'll take a non-heuristic solution for any system I have to
> administer, thanks.

You have to love that swap + 1/2 ram option --- when you need four
possible options, there is something wrong with your approach.  :-)

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to