Thread: resource management, letting user A use no more than X resource (time, CPU, memory...)

resource management, letting user A use no more than X resource (time, CPU, memory...)

From
Ivan Sergio Borgonovo
Date:
If I'd like to learn how to manage resources in postgres and grant
different users different time slot/memory/CPU?

eg. I'd like to grant to user A to execute queries that last less
than 1min or that occupy no more than X Mb... etc...

--
Ivan Sergio Borgonovo
http://www.webthatworks.it


In response to Ivan Sergio Borgonovo :
> If I'd like to learn how to manage resources in postgres and grant
> different users different time slot/memory/CPU?
>
> eg. I'd like to grant to user A to execute queries that last less
> than 1min or that occupy no more than X Mb... etc...

Isn't (real) possible. Okay, you can do something like:

alter user foo set work_mem to '1MB';

but i think, that's not a usefull option, because with this setting you
have other side effects (for instance, sort-operations on disk instead
of in-memory -> more I/O and more LOAD for the whole machine).


Regards, Andreas
--
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: -> Header)
GnuPG: 0x31720C99, 1006 CCB4 A326 1D42 6431  2EB0 389D 1DC2 3172 0C99

On 16/07/10 19:21, Ivan Sergio Borgonovo wrote:
> If I'd like to learn how to manage resources in postgres and grant
> different users different time slot/memory/CPU?
>
> eg. I'd like to grant to user A to execute queries that last less
> than 1min or that occupy no more than X Mb... etc...

PostgreSQL doesn't really offer much in the way of features for per-user
resource control, resource impact isolation, etc.

You can potentially run different PostgreSQL instances (postmasters, not
just databases) in different domains of a virtualization or
resource-control setup, but that's pretty inefficient, adds a lot of
admin work, and doesn't help if your users need to be able to use the
same database(s).

If you need strong user resource limits, user storage limits, etc
PostgreSQL might not be your best option. There are some things you can
do, but there's not much.

--
Craig Ringer

On Fri, 16 Jul 2010 19:43:01 +0800
Craig Ringer <craig@postnewspapers.com.au> wrote:

> On 16/07/10 19:21, Ivan Sergio Borgonovo wrote:
> > If I'd like to learn how to manage resources in postgres and
> > grant different users different time slot/memory/CPU?
> >
> > eg. I'd like to grant to user A to execute queries that last less
> > than 1min or that occupy no more than X Mb... etc...
>
> PostgreSQL doesn't really offer much in the way of features for
> per-user resource control, resource impact isolation, etc.
>
> You can potentially run different PostgreSQL instances
> (postmasters, not just databases) in different domains of a
> virtualization or resource-control setup, but that's pretty
> inefficient, adds a lot of admin work, and doesn't help if your
> users need to be able to use the same database(s).

> If you need strong user resource limits, user storage limits, etc
> PostgreSQL might not be your best option. There are some things
> you can do, but there's not much.

What about an external process that monitor backend and kill them
gracefully if they suck too many resources accordingly to the user
linked to that backend?

Or... gluing together a load balancing solution that divert
accordingly to the user to different slaves accordingly that have
slightly different setup?

--
Ivan Sergio Borgonovo
http://www.webthatworks.it


In response to Ivan Sergio Borgonovo :
> > If you need strong user resource limits, user storage limits, etc
> > PostgreSQL might not be your best option. There are some things
> > you can do, but there's not much.
>
> What about an external process that monitor backend and kill them
> gracefully if they suck too many resources accordingly to the user
> linked to that backend?

Bad idea - imho.


>
> Or... gluing together a load balancing solution that divert
> accordingly to the user to different slaves accordingly that have
> slightly different setup?

Sounds better, maybe possible.


Andreas
--
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: -> Header)
GnuPG: 0x31720C99, 1006 CCB4 A326 1D42 6431  2EB0 389D 1DC2 3172 0C99