python - 如何提高flask和psycopg2之间的连接时间
问题描述
我有一个连接到 postgres 数据库的烧瓶应用程序。在烧瓶服务器和数据库之间,我添加了一个池连接(pgbouncer)。我的烧瓶应用程序是多线程的,所以我不能在数据库和烧瓶应用程序之间使用单个连接。所以我为每个请求创建一个新的。问题是当我发送大量同时请求(300)时响应时间变得太长,在调试我的代码时我看到它是 psycopg2 的连接时间增加了
这是我的 pgbouncer 配置:
- DB_HOST=psql
- POOL_MODE=transaction
- MAX_CLIENT_CONN=10000
- DEFAULT_POOL_SIZE=2
- MIN_POOL_SIZE=2
- ADMIN_USERS=postgres
- LOG_CONNEXIONS=0
- LOG_DISCONNECTIONS=0
这是我的烧瓶应用程序中的连接函数,在我的应用程序端点的每次新调用时都会调用它。
def getConn(self):
conn = psycopg2.connect(user=dbUser,
password=dbPassword,
host=dbHost,
port=dbPort,
database=dbDatabase
)
conn.autocommit = True
cursor = conn.cursor()
cursor.execute("SET search_path TO ecosystem")
return conn, cursor
解决方案
推荐阅读
- nginx - 如何将 nginx 配置转换为入口 kubernetes yaml 配置?
- excel - 在 VBA 中使用 Vlookup 和 IsNA 函数时出现运行时错误 438
- tornado - 在龙卷风中使用@run_on_executor 时,错误是线程'ThreadPoolExecutor-0_0'中没有当前事件循环
- r - 将每一行与其他行连接起来
- python - 如何使用 python 脚本编辑 xml 属性值
- javascript - KeyboardEvent 打字稿的索引签名
- vue.js - 带有 API/props 的完整日历集 dayNames
- scala - TheAfterWord 在 { 之后不带参数
- python-2.7 - BatchWriteItem 操作:提供的关键元素与架构不匹配
- numpy - 如何修复 AttributeError:我的 CNN 的“NoneType”对象没有属性“original_name_scope”?