connection pool
am 31.07.2006 21:48:38 von Peter Hofer
Hallo
Need your help
1 got a Site runnig php 4.4.2 and postgresql (8.1.4) and
Follwing problem
- 4 Server (Apache) up to 300 clients connection to the DB
- 1 DB machine
So:
- If I run with persisent, i got up to 1200 Connction and I run out
of memeory
- if I run with no persisent connection i got massive forking of postgres
(but less problems)
How can I build up a Pool of Connections ?
What about "Pgpool" ?
Thanks
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings
Re: connection pool
am 01.08.2006 09:29:00 von herve
Hi,
I had the same trouble 6 years ago with my beginning of Postgresql ...
4 web and 1 db ...
Just put a limitation in the php.ini
; Maximum number of persistent links. -1 means no limit.
pgsql.max_persistent =3D 18
; Maximum number of links (persistent+non persistent). -1 means no limit=
..
pgsql.max_links =3D 18
It'll run perfectly ... for me it's like that since 6 years ... and I hav=
e=20
thousand of visitor each day on my services :o)
Regards,
Le lundi 31 juillet 2006 21:48, Peter Hofer a =E9crit :
> Hallo
>
> Need your help
>
> 1 got a Site runnig php 4.4.2 and postgresql (8.1.4) and
> Follwing problem
>
> - 4 Server (Apache) up to 300 clients connection to the DB
> - 1 DB machine
>
> So:
>
> - If I run with persisent, i got up to 1200 Connction and I run out
> of memeory
>
> - if I run with no persisent connection i got massive forking of postgr=
es
> (but less problems)
>
> How can I build up a Pool of Connections ?
>
> What about "Pgpool" ?
>
> Thanks
>
>
>
>
>
>
>
>
>
>
>
>
>
> ---------------------------(end of broadcast)--------------------------=
-
> TIP 5: don't forget to increase your free space map settings
--=20
Herv=E9 Piedvache
NOUVELLE ADRESSE - NEW ADDRESS :
Elma Ing=E9nierie Informatique
3 rue d'Uz=E8s
F-75002 - Paris - France
Pho. 33-144949901
Fax. 33-144882747
---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?
http://archives.postgresql.org
Re: connection pool
am 01.08.2006 11:46:43 von Peter Hofer
Hy=20
Thanks for your answer=20
As far as i know " pgsql.max_persistent " limits the no on=20
Persistent Connections per apache client - and not for all=20
Apaches - so I set it "pgsql.max_persistent =3D 1" since we=20
Connect to the same DB all the time=20
Currently we got 2 Servers runnung with persistent Connection,=20
and 2 Server with non-persitent connections=20
Right now i have 359 progres running, 345 are idle.=20
If I set the other servers to persistent connections, too, I will have=20
About 700 progres running - 95% on idle=20
They all take memory ...=20
I will have to expand up to 10 and more WebServers in near future=20
Therefore persistent-Connection (because of the memory amount to handle 1500
Connection) nor=20
Non-persistent-Connection (because of forking ) is a suitable way=20
What I think about, is a maschine getting all the Connections from the
Apache, and=20
Forward only those to the DB whitch are not idle=20
Any idea ?=20
Thanks=20
Peter=20
> -----Ursprüngliche Nachricht-----
> Von: pgsql-php-owner@postgresql.org=20
> [mailto:pgsql-php-owner@postgresql.org] Im Auftrag von Herv=E9 Piedvache
> Gesendet: Dienstag, 01. August 2006 09:29
> An: pgsql-php@postgresql.org; peter.hofer@ics.at
> Betreff: Re: [PHP] connection pool
>=20
> Hi,
>=20
> I had the same trouble 6 years ago with my beginning of Postgresql ...
>=20
> 4 web and 1 db ...
>=20
> Just put a limitation in the php.ini
>=20
> ; Maximum number of persistent links. -1 means no limit.
> pgsql.max_persistent =3D 18
>=20
> ; Maximum number of links (persistent+non persistent). -1=20
> means no limit.
> pgsql.max_links =3D 18
>=20
> It'll run perfectly ... for me it's like that since 6 years=20
> ... and I have thousand of visitor each day on my services :o)
>=20
> Regards,
>=20
> Le lundi 31 juillet 2006 21:48, Peter Hofer a =E9crit :
> > Hallo
> >
> > Need your help
> >
> > 1 got a Site runnig php 4.4.2 and postgresql (8.1.4) and Follwing=20
> > problem
> >
> > - 4 Server (Apache) up to 300 clients connection to the DB
> > - 1 DB machine
> >
> > So:
> >
> > - If I run with persisent, i got up to 1200 Connction and I run out
> > of memeory
> >
> > - if I run with no persisent connection i got massive=20
> forking of postgres
> > (but less problems)
> >
> > How can I build up a Pool of Connections ?
> >
> > What about "Pgpool" ?
> >
> > Thanks
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > ---------------------------(end of=20
> > broadcast)---------------------------
> > TIP 5: don't forget to increase your free space map settings
>=20
> --
> Herv=E9 Piedvache
>=20
> NOUVELLE ADRESSE - NEW ADDRESS :
> Elma Ing=E9nierie Informatique
> 3 rue d'Uz=E8s
> F-75002 - Paris - France
> Pho. 33-144949901
> Fax. 33-144882747
>=20
> ---------------------------(end of=20
> broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>=20
> http://archives.postgresql.org
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster
Re: connection pool
am 01.08.2006 15:45:02 von Robert Treat
On Monday 31 July 2006 15:48, Peter Hofer wrote:
> Hallo
>
> Need your help
>
> 1 got a Site runnig php 4.4.2 and postgresql (8.1.4) and
> Follwing problem
>
> - 4 Server (Apache) up to 300 clients connection to the DB
> - 1 DB machine
>
> So:
>
> - If I run with persisent, i got up to 1200 Connction and I run out
> of memeory
>
one recommendation would be to set your max # of apache children to something
less than the amount of connections you can handle on postgresql. for
example, if you can only handle 1000 connections, set the max # of children
per server to say 245 (leave 20 slots for super user connections).
one thing I do wonder about is just how much ram (or how little) you have
available. istm 1200 connections should not run you out of memory on a
dedicated db machine.
> - if I run with no persisent connection i got massive forking of postgres
> (but less problems)
>
yeah... I often recommend not using persistent connections in php since they
tend to cause trouble :-)
> How can I build up a Pool of Connections ?
>
> What about "Pgpool" ?
>
RIght... pgpool basically acts as an intermediary, so everything connects to
the pool, which then forwards on requests to the database. I would think
reducing the number of apache children would work better, but this might be
worth a shot since your mixing pg_connect and pg_pconnect between servers. If
you do please report back your experience to the list :-)
--
Robert Treat
Build A Brighter LAMP :: Linux Apache {middleware} PostgreSQL
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq