Re: Sudden increase in connections in pgpool usage environment

From: Tatsuo Ishii <ishii(at)postgresql(dot)org>
To: r_suzuki(at)sjts(dot)co(dot)jp
Cc: pgpool-general(at)lists(dot)postgresql(dot)org
Subject: Re: Sudden increase in connections in pgpool usage environment
Date: 2025-07-30 12:13:24
Message-ID: 20250730.211324.1175750923831808216.ishii@postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgpool-general

>> Is it possible Server1 overloaded? I am asking because on server1 3
>> kinds of servers are running. I suspect pgpool process are not enough
>> CPU being assigned, and cannot dispatch incoming new connections.
>
> Under normal conditions, the server load is not particularly
> problematic.
> Rather, it seems that the load increases at the same time the "DISCARD
> ALL" occurs.
>
> Regarding the phrase "cannot dispatch incoming new connections,"
> I was wondering―does pgpool sometimes establish connections to
> PostgreSQL automatically,
> even if a connection is not explicitly needed?

What do you mean by "even if a connection is not explicitly needed"?
Can you elaborate more?

> My current understanding is that a connection to PostgreSQL is created
> only when Tomcat makes a request for one,
> and that pgpool initiates the connection at that point.

Yes.

> Since it’s a bit hard to imagine the web system suddenly using up as
> many as 300 connections all at once,
> I just wanted to check and make sure I’m not misunderstanding how
> this works.

For pgpool To create 300 connections to PostgreSQL, you don't need to
have 300 web connections exactly at the same timing.

When a client connects pgpool, one of pgpool "child" process is chosen
by kernel. If the process already have a suitable connections cache
(i.e. matches the requested username/database etc.), no new connection
to PostgreSQL is created. However the process does not have, a new
connection to PostgreSQL is created. Since kernel does not care
whether the particular pgpool process already has the requested
connection to PostgreSQL, it is possible that a pgpool process which
does not have the connection. So if you are unlucky, continuous a few
number of concurrent requests from clients could make all 300 pgpool
process connect to PostgreSQL.

To deal with the situation, you can tweak configurations in "- Life
time -" section of pgpool.conf. See the manual for more details.

Best regards,
--
Tatsuo Ishii
SRA OSS K.K.
English: http://www.sraoss.co.jp/index_en/
Japanese:http://www.sraoss.co.jp

In response to

Responses

Browse pgpool-general by date

  From Date Subject
Next Message Luca Ferrari 2025-07-31 08:58:19 Re: main vs primary
Previous Message Bo Peng 2025-07-30 10:03:41 Re: main vs primary