In summary, it's an expected behavior.

> Hi Chaps,
> 
> I've been trying pgpool II, and doing a few tests. At the moment I have 
> init_children set to 500 and max pool set to 1.
> 
> I've got 5 processes running that connect to 2 databases on the target 
> server, and they constantly connect, fetch some data for about 30 seconds and 
> then disconnect then connect again in a loop.
> 
> Pgpool has 10 connections as expected, however the postgres server has over 
> 200 connections from pgpool and that number is growing fast.

pgpool forks 500 child processes which are all ready to accpet a
connection from clients if they are not busy ("busy" means it has
an established connection from client). Which child accept is
determined by kernel and it's neccesary true that a child which is not
busy *and* has a connection cache. So in the worst scenario, even if
you have only one client, number of connections from pgpool to
PostgreSQL might grow up to num_init_children.

> I guess I've missed something here - I thought the connections would be 
> reused out of the 10 seeing as there's only the 5 clients?

You may want to lower num_init_children to 5 in this case.

> Out of the 200 connections, if I try to connect in as a different user will 
> the one of the old connections be used? If not; whats the point?

Only if your kernel chooses the child which has the existing
connection cache.
--
Tatsuo Ishii
SRA OSS, Inc. Japan
_______________________________________________
Pgpool-general mailing list
[email protected]
http://pgfoundry.org/mailman/listinfo/pgpool-general

Reply via email to