In response to Scott Marlowe <scott.marlowe@gmail.com>:
> On Thu, Sep 17, 2009 at 12:56 PM, Alan McKay <alan.mckay@gmail.com> wrote:
> > Is there any way to limit a query to a certain amount of RAM and / or
> > certain runtime?
> >
> > i.e. automatically kill it if it exceeds either boundary?
> >
> > We've finally narrowed down our system crashes and have a smoking gun,
> > but no way to fix it in the immediate term. This sort of limit would
> > really help us.
>
> Generally speaking work_mem limits ram used. What are your
> non-default postgresql.conf settings?
work_mem limits memory usage _per_sort_.
A big query can easily have many sorts. Each sort will be limited to
work_mem memory usage, but the total could be much higher.
The only way I can think is to set a per-process limit in the OS and allow
the OS to kill a process when it gets out of hand. Not ideal, though.
--
Bill Moran
http://www.potentialtech.com
http://people.collaborativefusion.com/~wmoran/