Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'ai une serveur PaaS Azure Postgresql en version 9.5 (!). Aléatoirement, j'ai des logs (avec une application web comme client) qui m'indique "LOG: could not send data to client: An existing connection was forcibly closed by the remote host."
Je soupçonne une connexion idle qui est fermée par le serveur (mal gérée, peut être, côté applicatif). Est-ce que j'ai un moyen de confirmer cela en évitant de tracer le réseau (avec wireshark où je ne comprends rien) ?
Quelqu'un a une expérience à ce sujet sur du Azure Postgresql single server ?
A priori, je pense qu'en dehors d'une révision des gestions de connexions, qu'un pgBouncer pourrait régler ce problème. Que puis-je proposer de plus ?
Merci.
Dernière modification par stephane.lorek (04/06/2021 16:46:21)
Hors ligne
Cela ressemble à une coupure réseau effectivement. Avez-vous des firewalls ou autre équipement qui pourraient couper des c onnexions en cas d'inactivité ? Peut être que configurer un timeout / keepalive tcp plus aggressif pourrait résoudre le problème.
Julien.
https://rjuju.github.io/
Hors ligne
Merci de la réponse.
Bonne idée, même si l'application est dans Azure aussi, mais, je vais vérifier.
J'espère aussi avoir des informations sur la gestion des connexions dans l'application.
Hors ligne
Finalement, je suis arrivé à avoir le développeur qui garde la session ouverte côté application. Il va changer le comportement et fermer les sessions une fois utilisées.
Hors ligne
Attention, je ne connais pas votre application mais si cela signifie ouvrir et fermer des connexions en permanence et à grande fréquence, c'est probablement une mauvaise idée. Ouvrir une connexion sur postgres est loin d'être gratuit, et faire ça plusieurs dizaines de fois par secondes va engendrer une perte de performance significative.
Julien.
https://rjuju.github.io/
Hors ligne
Pour le moment, je n'ai pas de visibilité à ce sujet, on m'a refilé le problème un peu brutalement. Je vais me renseigner là-dessus. A priori, c'est une application web interne à un service.
On prévoit aussi de mettre en place un pgBouncer.
Hors ligne
A priori, le développeur a trouvé un paramètre TrustCertificate dans a chaine de connexion a passer à true (driver npgsql). Je reste prudent, j'ai encore vu passer des FATAL: connection to client lost suivi de LOG: could not receive data from client: An existing connection was forcibly closed by the remote host.
Je vais encore investiguer et prendre le temps d'installer un pgbouncer.
Hors ligne
Effectivement, ce paramètre n'a à priori pas de rapport avec le problème. Mettre en place un pgBouncer pourrait également être une bonne idée.
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1