Postgres PHP error

Started by Shaun Clementsalmost 21 years ago5 messagesgeneral
Jump to latest
#1Shaun Clements
ShaunC@relyant.co.za

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

#2Richard Huxton
dev@archonet.com
In reply to: Shaun Clements (#1)
Re: 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

#3Shaun Clements
ShaunC@relyant.co.za
In reply to: Richard Huxton (#2)
Re: Postgres PHP error

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

#4Richard Huxton
dev@archonet.com
In reply to: Shaun Clements (#3)
Re: Postgres PHP error

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

#5Matthew Terenzio
matt@jobsforge.com
In reply to: Richard Huxton (#4)
Re: Postgres PHP error

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:

Show quoted text

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)