Re: too many clients

From: "Gavin M(dot) Roy" <gmr(at)ehpg(dot)net>
To: Frank Bax <fbax(at)sympatico(dot)ca>
Cc: pgsql-php(at)postgresql(dot)org
Subject: Re: too many clients
Date: 2004-12-29 23:32:11
Message-ID: 1104363131.32605.30.camel@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Responses

Browse pgsql-php by date

  From Date Subject
Next Message Greg Stark 2004-12-30 05:20:37 Re: too many clients
Previous Message Frank Bax 2004-12-29 18:13:39 Re: too many clients