David Amen
David Amen

Reputation: 11

How to scale the total number of connection with pgpool load balancing?

I have 3 postgresql database (one master and two slave) with a pgpool, each database can handle 200 connections, and I want to be able to get 600 active connection on the pgpool.

My problem is that if I set pgpool with 600 child process, it can open the 600 connection on only one database (the master for example if all connection make a write query), but with 200 child process I only use +- 70 connection on each database.

So is there a way to configure pgpool to have a load balancing that scale with the number of database ?

Thanks.

Upvotes: 1

Views: 1390

Answers (1)

Nitish Kumar
Nitish Kumar

Reputation: 792

Having 600 connections available in each db should not be an ideal solution. I would really look into my application before setting such a high connections value.

Load balancing scalability of pgpool can be increased by setting equal backend_weight parameter. So that no of sql queries will equally get distributed among postgresql nodes.

Also pgpool manages database connection pool using num_init_children and max_pool parameter.

The num_init_children parameter is used to span pgpool process that will connect to each PostgreSQL backends.

Also num_init_children parameter value is the allowed number of concurrent clients to connect with pgpool.

pgpool roughly tries to make max_pool*num_init_children no of connections to each postgresql backend.

Upvotes: 1

Related Questions