Re: Ned to understand why all the idle connections - Mailing list pgsql-general

From Si Chen
Subject Re: Ned to understand why all the idle connections
Date
Msg-id CAAYSSjPGHt65GuF1UO7=53vqV5fgdW=pBysregqnR6wqLWNZAQ@mail.gmail.com
Whole thread Raw
In response to Re: Ned to understand why all the idle connections  ("David G. Johnston" <david.g.johnston@gmail.com>)
Responses Re: Ned to understand why all the idle connections
List pgsql-general
Hello David & David,

I have a similar problem -- a lot of idle transactions.  I'm using the PostgreSQL JDBC driver.  The connections look like this:

 pid  | wait_event |         state_change          |         backend_start         | xact_start |          query_start          |    ?column?     | query  

-------+------------+-------------------------------+-------------------------------+------------+-------------------------------+-----------------+--------

 32506 | ClientRead | 2020-04-23 09:29:05.6793-07   | 2020-04-23 01:00:19.612478-07 |            | 2020-04-23 09:29:05.679275-07 | 00:00:00.000025 | COMMIT


 32506 | ClientRead | 2020-04-23 09:30:33.247119-07 | 2020-04-23 01:00:19.612478-07 |                               | 2020-04-23 09:30:33.247109-07 | 00:00:00.00001  | COMMIT


 32506 | ClientRead | 2020-04-23 09:31:31.506914-07 | 2020-04-23 01:00:19.612478-07 |                               | 2020-04-23 09:31:31.506905-07 | 00:00:00.000009 | COMMIT


 32506 | ClientRead | 2020-04-23 09:32:32.06656-07  | 2020-04-23 01:00:19.612478-07 |            | 2020-04-23 09:32:32.066552-07 | 00:00:00.000008 | COMMIT


 32506 | ClientRead | 2020-04-23 09:36:51.579939-07 | 2020-04-23 01:00:19.612478-07 |            | 2020-04-23 09:36:51.579931-07 | 00:00:00.000008 | COMMIT


It seems like they haven't been doing anything for a long time, but the state_change keeps getting updated.  Is it possible that state_change is being updated, maybe by the JDBC driver?

Do you recommend using PgBouncer with JDBC?

-----
Si Chen
Open Source Strategies, Inc.

Our Mission: https://www.youtube.com/watch?v=Uc7lmvnuJHY



On Thu, Apr 23, 2020 at 11:41 AM David G. Johnston <david.g.johnston@gmail.com> wrote:
On Thursday, April 23, 2020, David Gauthier <davegauthierpg@gmail.com> wrote:
Hi:

psql (9.6.7, server 11.3) on linux

I have what appear to be a log of idle connections to my DB.  Query of pg_stat_activity indicates well over half (127/206) are like this...


dvdb=# select state_change,wait_event_type,wait_event,state,backend_type from pg_stat_activity where query = '';
         state_change          | wait_event_type |     wait_event      | state |         backend_type        
-------------------------------+-----------------+---------------------+-------+------------------------------
 2020-04-23 12:57:58.215854-04 | Client          | ClientRead          | idle  | client backend

What does this indicate?

The vast majority of the connections are through perl/dbi.   If a connection is made, and is currently not doing anything, does it appear in pg_stat_activity as "idle" ?  If, in DBI, $dbh->disconnect is used whenever the DB is no longer needed, will it disconnect from the DB and NOT appear as an idle in pg_stat_activity ?

If there are any other column s in pg_stat-activity you'd like to see, or any other query in any of the system tables, please advise.

If the server has an active, authenticated, connection/process running it shows up here.  Yes, idle is the state used to denote the the session is “not doing anything”...

$dbh->disconnect typically will indeed close the connection.  There can be exceptions if your architecture uses connection pooling.

David J.

pgsql-general by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: Question on banner display after PG initial connection
Next
From: Kevin Brannen
Date:
Subject: RE: how to slow down parts of Pg