[pgpool-hackers: 409] Re: Adding listen_backlog parameter

Tatsuo Ishii ishii at postgresql.org
Mon Nov 18 13:38:04 JST 2013


> Hi pgpool hackers,
> 
> I would like to add new parameter "listen_backlog". This essentially
> same as Apache's ListenBacklog parameter:
> 
> The second parameter of listen(2) system call.
> 
> As you might already know, pgpool accepts concurrent connections up to
> num_init_children. Exceeding connections will be queued in kernel's
> backlog queue. If the queue is long enough to accept a new connection,
> the request from the client will be almost immediately accepted by
> pgpool once existing client disconnects to pgpool. However, if the
> queue is overflowed, the client might retry after 3 seconds or so, and
> user thinks that pgpool's response is too bad. Or disconnected by
> pgpool with "Connection to database "test" failed: could not connect
> to server: Connection timed out".
> 
> The solution is, making the backlog parameter large enough for such
> possible load. Currently the backlog is calculated by
> num_init_children * 2. But this may not be large enough for certain
> load. For the case, the new proposed parameter can set the listen()'s
> backlog parameter longer than num_init_children * 2.
> 
> Here is an experiment I did to illustrate the effect of the
> parameter(script attached).
> 
> I started pgpool with num_init_children = 2, and connected to it by
> using 128 forked pgbench.
> Each pgbench executes 100 read only queries.
> 
> 	 pgbench -C -c 1 -n -S test;date)&
> 
> The pgpool server is a Linux box running kernel 3.4.68.
> 
> Stock pgpool-II 3.3.1, which set the backlog parameter to 4, took 1
> minute and 7 seconds. And some requests failed with "Connection to
> database "test" failed" error.

Please note that you will find something like:

    2357 times the listen queue of a socket overflowed

by executing netstat -s in this case.

> On the other hand if I set the backlog parameter to 1024, it took only
> 15 seconds without any error.
> 
> Opinions?
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese: http://www.sraoss.co.jp


More information about the pgpool-hackers mailing list