[Pgpool-general] Backend connections pool and child process

Erwan ebs at antelink.com
Fri Sep 30 16:59:57 UTC 2011


Hi there,

I use a pgpool-II v3.0.3 instance and pgpool-II is only used for 
failover between 2 database servers.

I have the impression that my backend connections pool managed by 
pgpool-II doesn't work well (or not like I would).
Each time I connect to my DB through pgpool-II, a pgpool-II's child 
process is used even if there is already a pgpool-II child with exactly 
the same connection parameters (user,db and node) as you can see here:

pgpool-node $ ps fax | grep "pgpool:.*idle"
  2768 ?        S      0:00  \_ pgpool: a-readonly aDB 
my.server.net(33139) idle
  2769 ?        S      0:08  \_ pgpool: a-readonly aDB 
my.server.net(43832) idle
  2770 ?        S      0:45  \_ pgpool: b-readonly bDB 
my.server.net(56226) idle
  2771 ?        S      0:57  \_ pgpool: b-readonly bDB 
my.server.net(43743) idle
  2772 ?        S      0:51  \_ pgpool: b-readonly bDB 
my.server.net(41201) idle
  2773 ?        S      0:00  \_ pgpool: b-readonly bDB 
my.server.net(43723) idle
  2774 ?        S      0:00  \_ pgpool: a-readonly aDB 
my.server.net(33135) idle
  2775 ?        S      0:00  \_ pgpool: b-readonly bDB 
my.server.net(43719) idle
  2776 ?        S      0:08  \_ pgpool: a-readonly aDB 
my.server.net(50730) idle
  2777 ?        S      0:00  \_ pgpool: a-readonly aDB 
my.server.net(43717) idle
  2778 ?        S      0:55  \_ pgpool: b-readonly bDB 
my.server.net(43742) idle
  2779 ?        S      0:00  \_ pgpool: a-readonly aDB 
my.server.net(43725) idle
  2780 ?        S      0:57  \_ pgpool: b-readonly bDB 
my.server.net(43731) idle
  2781 ?        S      0:10  \_ pgpool: a-readonly aDB 
my.server.net(43729) idle
  2784 ?        S      0:00  \_ pgpool: a-readonly aDB 
my.server.net(43721) idle
  2786 ?        S      0:00  \_ pgpool: b-readonly bDB 
my.server.net(43727) idle
10540 ?        S      0:10  \_ pgpool: a-readonly aDB 
my.server.net(43744) idle
10541 ?        S      0:00  \_ pgpool: a-readonly aDB 
my.server.net(33141) idle
10872 ?        S      0:00  \_ pgpool: a-readonly aDB 
my.server.net(41200) idle

On my backend I can see the same number of connections from my pgpool-II 
node...

However I believed I configured pgpool-II to have a pool of 4 
connections by child, as you can see in my following settings:
...
num_init_children = 19
max_pool = 4
child_life_time = 300
connection_life_time = 300
child_max_connections = 0
client_idle_limit = 0
connection_cache = true
...

So I don't understand why I have so many "busy" childs on my pgpool-II 
node and why/when/how pgpool-II child process use their pool.
Any clue will be greatly appreciated (even if I think there is something 
I forgot/miss or don't understand in my pgpool-II config file).

Thank you in advance

/Erwan


More information about the Pgpool-general mailing list