Re: too many clients - Mailing list pgsql-php

From Gavin M. Roy
Subject Re: too many clients
Date
Msg-id 1104363131.32605.30.camel@localhost
Whole thread Raw
In response to Re: too many clients  (Frank Bax <fbax@sympatico.ca>)
Responses Re: too many clients
List pgsql-php
Per your direction, pg_pConnect is great when you have one site
dedicated on one box talking to another dedicated PgSQL box.  It does
not make sense in mass vhosting environments.  Using pg_pConnect greatly
reduces execution time in an environment where you're not fighting for
resources.  I use it on a few very high traffic sites without issue, but
it is tuned so that there is only 1 persistant connection per apache
backend and postgresql will allow the max apache backends, which by
default is generally 256.  I highly recommend it in such a situation,
while I generally do not recommend it in any other.

Gavin


On Wed, 2004-12-29 at 13:13 -0500, Frank Bax wrote:
> At 12:12 PM 12/29/04, Matthew Terenzio wrote:
>
>
> >On Dec 29, 2004, at 11:38 AM, Mitch Pirtle wrote:
> >
> >>You got a couple solutions, one of which is getting a connection
> >>pooler setup between apache(php) and postgres.  SQL Relay
> >>(sqlrelay.sf.net) could be a common candidate, as I have used it in
> >>the past with great results.
> >
> >Yes, I have taken a look at that before. It might be a good time to try it.
> >
> >I don't exactly understand the technical difference between pooled
> >connections and persistent ones.
> >
> >pg_pconnect() is grabbing an existing open connection if one is available.
> >
> >How is  a connection pool more efficient in doing something along these lines?
>
>
> Have you read the php docs on persistent connections?
>          http://www.php.net/manual/en/features.persistent-connections.php
> pg_pconnect is sometimes used in situations where it does not make sense.
>
> As you mentioned, apache uses numerous child process.  A persistent
> connection can only be reused if the following things are the same:
>          - same apache child process requests the connection
>          - same connect string (ie host, database, user are *all* the same)
>
> If you have a site where there are many databases and/or many users, it is
> very easy for apache to retain more persistent connections than your
> postgres limit.  There are many variables when trying to figure out which
> function works better, so simply try it on your own system.  If pg_connect
> does not add significant overhead, and manages to avoid the problems you
> mentioned, then use it instead of pg_pconnect.
>
> I haven't heard of pooled connections, but can only assume they somehow
> overcome the problems with pg_pconnect gets out of control - perhaps the
> connections are shared across apache child processes.
>
> Frank
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
>                http://archives.postgresql.org


pgsql-php by date:

Previous
From: Frank Bax
Date:
Subject: Re: too many clients
Next
From: Greg Stark
Date:
Subject: Re: too many clients