<div dir="ltr">Hi,<div><br></div><div>I incremented num_init_children from 120 to 200 today for testing. max_pool = 1 and connection_cache = off.</div><div>We have 2 pgpool servers but the one that is connected to VIP one will be active and the other is for failover.</div><div>We have 2 backend postgres DB servers with max_connections 250.</div><div>So the<b> </b>1 * 200 < 250 rule is satisfied.</div><div><br></div><div>My concern is whether there is any way to wait in the queue if the connections are more than 200 instead of throwing this error. We don't have long running queries sothe connections will be available shortly.</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 1, 2021 at 4:45 PM Tatsuo Ishii <<a href="mailto:ishii@sraoss.co.jp">ishii@sraoss.co.jp</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Looking into the pgppol.conf, I noticed num_init_children is 200,<br>
rather than 120. Also it seems you have 2 Pgpool servers: db1 and db2.<br>
Does your application servers accesses both db1 and db2? If so, the<br>
required max_connections for PostgreSQL would be at least 400 because<br>
2 Pgpool servers connect to PostgreSQL with up to num_init_children =<br>
200 each, thus up to 400 connections will be made.<br>
<br>
> Hi,<br>
> <br>
> Pgpool-II version: pgpool-II version 4.2.2 (chichiriboshi)<br>
> pgpool.conf attached. Kindly check.<br>
> <br>
> Thanks!<br>
> <br>
> <br>
> On Thu, Jul 1, 2021 at 1:46 PM Tatsuo Ishii <<a href="mailto:ishii@sraoss.co.jp" target="_blank">ishii@sraoss.co.jp</a>> wrote:<br>
> <br>
>> > Hi,<br>
>> ><br>
>> > After integrating pgpool with the app server, we tested by running load<br>
>> > tests with 25 concurrent users.<br>
>> > The following error comes multiple times while test running:<br>
>> ><br>
>> >> ERROR:  Sorry, too many clients already<br>
>> >> LOG:  backend [1]: WARNING: there is already a transaction in progress<br>
>> ><br>
>> ><br>
>> > Set the following in pgpool:<br>
>> > connection_cache=off<br>
>> > child_life_time = 5min<br>
>> > num_init_children=120<br>
>> > max_pool=1<br>
>> ><br>
>> > There are master-slave postgre DB servers with max_connections=250.<br>
>> > There are 2 appservers with XADatasource max pool size 60, pointing to<br>
>> the<br>
>> > Pgpool server.<br>
>> > The application connects to 4 databases but only one database is used<br>
>> 90%.<br>
>> ><br>
>> > When we point directly to the master DB server, all works fine. But when<br>
>> > connected via the Pgpool server, these errors come intermittently.<br>
>> ><br>
>> > Is it because Pgpool connections are not getting released and are all in<br>
>> > active state?<br>
>> > Is there any way the excess connection requests in the queue instead<br>
>> > of throwing errors so that it will be processed once existing connections<br>
>> > are released?<br>
>> > Anyone please help me identify the bottleneck.<br>
>><br>
>> Can you share the exact Pgpool-II version and pgpool.conf?<br>
>><br>
>> Best regards,<br>
>> --<br>
>> Tatsuo Ishii<br>
>> SRA OSS, Inc. Japan<br>
>> English: <a href="http://www.sraoss.co.jp/index_en.php" rel="noreferrer" target="_blank">http://www.sraoss.co.jp/index_en.php</a><br>
>> Japanese:<a href="http://www.sraoss.co.jp" rel="noreferrer" target="_blank">http://www.sraoss.co.jp</a><br>
>><br>
> <br>
> <br>
> -- <br>
> Life is like this: "Just when we get all the answers of life.... God<br>
> changes the question paper....<br>
> <br>
> Valsaraj Viswanathan<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Life is like this: "Just when we get all the answers of life.... God changes the question paper....<br><br>Valsaraj Viswanathan</div>