Re: too many clients

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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


[Index of Archives]     [Postgresql General]     [Postgresql Admin]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Yosemite Backpacking]     [Postgresql Jobs]

  Powered by Linux