Re: CLOSE_WAIT pileup and Application Timeout - Mailing list pgsql-general

From KK CHN
Subject Re: CLOSE_WAIT pileup and Application Timeout
Date
Msg-id CAKgGyB8zMUzJSMQL8ryc-73aG3YEhWj4hGkqtOBT_yywesyCHQ@mail.gmail.com
Whole thread Raw
In response to Re: CLOSE_WAIT pileup and Application Timeout  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Responses Re: CLOSE_WAIT pileup and Application Timeout
List pgsql-general


On Mon, Oct 7, 2024 at 12:07 AM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
On 2024-Oct-04, KK CHN wrote:

> The mobile tablets are installed with the android based vehicle
> tracking app which updated every 30 seconds its location fitted inside the
> vehicle ( lat long coordinates) to the PostgreSQL DB through the java
> backend application to know the latest location of the vehicle and its
> movement which will be rendered in a map based front end.
>
> The vehicles on the field communicate  via 443 to   8080 of the Wildfly
> (version 27 ) deployed with the vehicle tracking application developed with
> Java(version 17).

It sounds like setting TCP keepalives in the connections between the
Wildfly and the vehicles might help get the number of dead connections
down to a reasonable level.  Then it's up to Wildfly to close the
connections to Postgres in a timely fashion.  (It's not clear from your
description how do vehicle connections to Wildfly relate to Postgres
connections.)


Where do I have to introduce the TCP keepalives ? in the OS level or application code level ?

[root@dbch wildfly-27.0.0.Final]# cat /proc/sys/net/ipv4/tcp_keepalive_time
7200
[root@dbch wildfly-27.0.0.Final]# cat /proc/sys/net/ipv4/tcp_keepalive_intvl
75
[root@dbch wildfly-27.0.0.Final]# cat /proc/sys/net/ipv4/tcp_keepalive_probes
9
[root@dbch wildfly-27.0.0.Final]#

These are the default values in the OS level.   Do I need to reduce all the above three values to  say 600, 20, 5  ?   Or need to be handled in the application backend code ? 

 Any hints much appreciated..

I wonder if the connections from Wildfly to Postgres use SSL?  Because
there are reported cases where TCP connections are kept and accumulate,
causing problems -- but apparently SSL is a necessary piece for that to
happen.
No SSL in between   Wildfly (8080 ) to    PGSQL(5432).  Both the machines internal lan VMs  in the same network.    Only the devices on the field (fitted on the  vehicles) communicate to the application backend via a public URL :443  port  then  it connectes  to the 8080 of wildfly then the java code connects the  database server running on 5432 on the internal LAN network.
 
--
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/
Thou shalt study thy libraries and strive not to reinvent them without
cause, that thy code may be short and readable and thy days pleasant
and productive. (7th Commandment for C Programmers)

pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: Question on pg_stat* views
Next
From: Greg Sabino Mullane
Date:
Subject: Re: Question on pg_stat* views