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
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 |