Thread: Postgres PHP error

Postgres PHP error

From
Shaun Clements
Date:

Hi All

Im receiving the following error, on a php page, conneting to postgres 7.4, installed on Mandrake 10.0
<snip>
Error Description: pg_connect(): Unable to connect to PostgreSQL server: FATAL: sorry, too many clients already . 
</snip>
Can anyone tell me what this means?
Is there a performance setting I need to set under the postgresql conf file.
I have checked, and its set to 100 users.
This error strangely has only happened once. Last week Monday.

Kind Regards,
Shaun Clements

Re: Postgres PHP error

From
Richard Huxton
Date:
Shaun Clements wrote:
> Hi All
>
> Im receiving the following error, on a php page, conneting to postgres 7.4,
> installed on Mandrake 10.0
> <snip>
> Error Description: pg_connect(): Unable to connect to PostgreSQL server:
> FATAL: sorry, too many clients already .
> </snip>
> Can anyone tell me what this means?

It means exactly what it says - too many clients.

> Is there a performance setting I need to set under the postgresql conf file.
> I have checked, and its set to 100 users.
> This error strangely has only happened once. Last week Monday.

Well - you probably had 100 connections then (actually, 100 - your
superuser reserved connections, default=2).

There are two possibilities:
  1. You had 100 users last Monday
  2. You are using more than one connection per user.

The second is the most likely. Turn connection logging on and try with a
couple of users to see how many connections you generate as you use the
site.

--
   Richard Huxton
   Archonet Ltd

Re: Postgres PHP error

From
Shaun Clements
Date:

Thanks. Great idea.
I assume there is more than one connection per user.
As judging by the scope of the system, more than one connection is made.
Would you suggest I increase the size of the connections.
What kind of performance decrease would I see, even if 100 isnt always used.

Kind Regards,
Shaun Clements

-----Original Message-----
From: Richard Huxton [mailto:dev@archonet.com]
Sent: 23 May 2005 03:29 PM
To: Shaun Clements
Cc: 'pgsql-general@postgresql.org'
Subject: Re: [GENERAL] Postgres PHP error

Shaun Clements wrote:
> Hi All
>
> Im receiving the following error, on a php page, conneting to postgres
> 7.4, installed on Mandrake 10.0 <snip> Error Description:
> pg_connect(): Unable to connect to PostgreSQL server:
> FATAL: sorry, too many clients already . 
> </snip>
> Can anyone tell me what this means?

It means exactly what it says - too many clients.

> Is there a performance setting I need to set under the postgresql conf file.
> I have checked, and its set to 100 users.
> This error strangely has only happened once. Last week Monday.

Well - you probably had 100 connections then (actually, 100 - your superuser reserved connections, default=2).

There are two possibilities:
  1. You had 100 users last Monday
  2. You are using more than one connection per user.

The second is the most likely. Turn connection logging on and try with a couple of users to see how many connections you generate as you use the site.

--
   Richard Huxton
   Archonet Ltd

Re: Postgres PHP error

From
Richard Huxton
Date:
Shaun Clements wrote:
> Thanks. Great idea.
> I assume there is more than one connection per user.
> As judging by the scope of the system, more than one connection is made.
> Would you suggest I increase the size of the connections.
> What kind of performance decrease would I see, even if 100 isnt always used.

It doesn't cost a lot to have many idle connections.

However - I'd still be tempted to see if the PHP application can't be
tweaked to reduce the time it spends with an open connection. It's
probably a case that scripts are opening connections, making one short
query and leaving the connection open unnecessarily after they've
finished with it.

--
   Richard Huxton
   Archonet Ltd

Re: Postgres PHP error

From
Matthew Terenzio
Date:
I f you are using Apache, also check the max connections in the
httpd.conf. You really can't allow more Apache children than your max
number of Postgres connections. At least it solved the problem in my
case.

On May 23, 2005, at 9:47 AM, Richard Huxton wrote:

> Shaun Clements wrote:
>> Thanks. Great idea.
>> I assume there is more than one connection per user.
>> As judging by the scope of the system, more than one connection is
>> made.
>> Would you suggest I increase the size of the connections.
>> What kind of performance decrease would I see, even if 100 isnt
>> always used.
>
> It doesn't cost a lot to have many idle connections.
>
> However - I'd still be tempted to see if the PHP application can't be
> tweaked to reduce the time it spends with an open connection. It's
> probably a case that scripts are opening connections, making one short
> query and leaving the connection open unnecessarily after they've
> finished with it.
>
> --
>   Richard Huxton
>   Archonet Ltd
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>