Default: 20
+==== min_pool_size ====
+
+Minimal pool size. PgBouncer will open this many connections to backend database
+after first client connect. Optional, not recommended in most normal setups.
+
+Default: 0 (disabled)
+
==== reserve_pool_size ====
How many additional connections to allow to a pool. 0 disables.
==== server_idle_timeout ====
If a server connection has been idle more than this many seconds, and there are
-too many connections in the pool, this one can be dropped. [seconds]
+too many connections in the pool, this one can be dropped.
+If 0 then timeout is disabled. [seconds]
Default: 600
extern int cf_pool_mode;
extern int cf_max_client_conn;
extern int cf_default_pool_size;
+extern int cf_min_pool_size;
extern int cf_res_pool_size;
extern usec_t cf_res_pool_timeout;
break;
disconnect_server(server, true, "too many servers in the pool");
many--;
+ cur--;
+ }
+
+ /* launch extra connections to satisfy min_pool_size */
+ if (cur < cf_min_pool_size &&
+ cur < pool->db->pool_size &&
+ cf_pause_mode == P_NONE &&
+ cf_reboot == 0 &&
+ pool_client_count(pool) > 0)
+ {
+ log_debug("Launching new connection to satisfy min_pool_size");
+ launch_new_connection(pool);
}
}
int cf_max_client_conn;
int cf_default_pool_size;
+int cf_min_pool_size;
int cf_res_pool_size;
usec_t cf_res_pool_timeout;
CF_ABS("pool_mode", CF_LOOKUP(pool_mode_map), cf_pool_mode, 0, "session"),
CF_ABS("max_client_conn", CF_INT, cf_max_client_conn, 0, "100"),
CF_ABS("default_pool_size", CF_INT, cf_default_pool_size, 0, "20"),
+CF_ABS("min_pool_size", CF_INT, cf_min_pool_size, 0, "0"),
CF_ABS("reserve_pool_size", CF_INT, cf_res_pool_size, 0, "0"),
CF_ABS("reserve_pool_timeout", CF_INT, cf_res_pool_timeout, 0, "5"),
CF_ABS("syslog", CF_INT, cf_syslog, 0, "0"),