Postegresql temps de connexion lent sur Windows

J’ai remarqué que la connexion à PostgreSQL est assez lente.

import psycopg2 import time start_time = time.time() try: db = psycopg2.connect("dbname='xx' user='xxx' host='127.0.0.1' password='xxx' port='5433'") except Exception as e: print(e) exit(1) print('connect time', time.time() - start_time) 

Le temps de connexion habituel est de 2,5 à 3,5 secondes. temps de connexion 3.3095390796661377

Sa configuration par défaut de PostgreSQL ™ fraîchement installé. J’ai éteint log_hostname mais ça n’a rien changé. J’ai exécuté à la fois PostgreSQL 9.4 et 10 et les deux ont le même problème. J’utilise cette machine pour le développement, mais malgré tout, je l’ai remarqué car mes requêtes Django prennent 2,5 à 3,5 secondes, ce qui les rend insupportables, même pour le développement.

Windows 10 Python 2/3 psycopg2 2.7.4

Ici le vidage des paquets

Ici, les journaux pertinents avec un débogage maximal de PostgreSQL

 2018-03-19 21:24:43.654 +03 [10048] DEBUG: 00000: forked new backend, pid=21268 socket=5072 2018-03-19 21:24:43.654 +03 [10048] LOCATION: BackendStartup, postmaster.c:4099 2018-03-19 21:24:45.248 +03 [21268] LOG: 00000: connection received: host=127.0.0.1 port=9897 

Il emboîte un nouveau backend, puis seulement 2 secondes plus tard, la connexion aux logs est reçue

UPD

Même si j’arrive à éviter le délai de connexion de PostgreSQL (par exemple via pgbouncer, ou si PostgreSQL s’exécute dans docker), la requête prend encore 1,3-2 secondes, mais du premier paquet envoyé jusqu’à la dernière, il ne rest que 0.022 seconde. pas une communication réseau entre client et serveur. Même code si exécuté dans Docker – 0.025 seconde. De Windows – 1.3-2sec mais interaction réseau seulement 0.022sec

Il y a en fait deux problèmes qui pourraient être causés par la même chose ou par la même chose, aucune idée.

1) Postgresql n’envoie pas le paquet pendant 1,8 seconde pour une raison inconnue

2) Même si le premier problème a été éliminé et que l’interaction réseau jusqu’à 0,022 seconde prend encore au total 1,3 à 2 secondes (en utilisant psql ou psycopg2)