Ald*_*und 7 windows postgresql psycopg2
我注意到与PostgreSQL的连接非常慢.
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)
Run Code Online (Sandbox Code Playgroud)
通常的连接时间为2.5-3.5秒.连接时间3.3095390796661377
它几乎是新安装的PostgreSQL的默认配置.我关闭了log_hostname但它没有改变任何东西.我已经运行了PostgreSQL 9.4和10,两者都有同样的问题.我正在使用这台机器进行开发,但即便如此,我注意到它,因为我的Django请求需要2.5-3.5秒,这使得即使对于开发也难以忍受.
Windows 10 Python 2/3 psycopg2 2.7.4
这里有来自PostgreSQL的max debug的相关日志
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
Run Code Online (Sandbox Code Playgroud)
它分叉新的后端,然后仅2秒后收到日志连接
UPD
即使我设法避免PostgreSQL的连接延迟(例如通过pgbouncer,或者如果PostgreSQL在docker中运行)请求仍然需要1.3-2秒,但从第一个发送包到最后只有0.022秒,所有其他时间idk发生了什么但是不是客户端和服务器之间的网络通信.如果在docker中运行相同的代码 - 0.025秒.从Windows - 1.3-2秒但网络交互只有0.022秒
实际上有两个问题可能是由同一件事或不同引起的,不知道.
1)由于未知原因,Postgresql没有发送数据包1.8秒
2)即使第一个问题被消除,网络交互下降到0.022秒,整个事情仍需要1.3-2秒(使用psql或psycopg2)
归档时间: |
|
查看次数: |
409 次 |
最近记录: |