<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif"><div class="gmail_default" style="font-family:tahoma,sans-serif">Hello PgPool<br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">We
are using PgPool 4.2.4 (from Alpine 3.13) as the frontend of a
master/standby PostgreSQL 10.14 cluster (2 synchronous standbys in
streaming replication mode). PgPool is operating as a load balancer and a
connection pool.<br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">PgPool
forks 90 pool workers (num_init_children=90, max_pool=2). All
PostgreSQL backend servers are configured properly to accept a maximum
of 190 connections (so, num_init_children * max_pool is below this
maximum with a safety margin of 10).</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">The relevant (pool-specific) part of the configuration is:</div><div class="gmail_default"><span style="background-color:rgb(207,226,243)"><span style="font-family:monospace">num_init_children = 90<br>max_pool = 2<br>child_life_time = 5min<br>child_max_connections = 0<br>connection_life_time = 0<br>client_idle_limit = 0 <br></span></span></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">After
a while (5-10 days of operation), we face several errors of the type of
"Sorry, too many clients". These errors are not originating from a
PostgreSQL backend (error logs are completely clear and pg_stat_activity
shows no more than 140 (from 190) active connections).<br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">This
problem has been around for some time now, and we have to resort to
restarting the entire PgPool service. Of course, this is not a perfect
solution because it disrupts some database clients (so, we also have to
cascade those restarts to some other services, and so on).</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">The
majority of database clients are connecting from a Hikari pool (Java
Spring/Boot) which creates long-standing connections (i.e. not one
per-transaction).<br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Any light on this issue is highly appreciated! </div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Kind regards, <br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Michail Alexakis, Software Engineer</div></div></div>