【发布时间】:2012-05-12 06:38:19
【问题描述】:
我有一些基于 gevent 的管理命令。由于我的管理命令发出数千个请求,因此我可以使用 Gevent 将所有套接字调用转换为非阻塞调用。这确实加快了我的应用程序,因为我可以同时发出请求。
目前我的应用程序的瓶颈似乎是 Postgres。这似乎是因为用于连接 Django 的 Psycopg 库是用 C 编写的,不支持异步连接。
我还了解到使用 pgBouncer 可以将 Postgres 速度提高 2 倍。这听起来不错,但如果有人能解释一下 pgBouncer 的工作原理和帮助,那就太好了?
谢谢
【问题讨论】:
-
您的数据库模型也有可能与您对其发起的查询不匹配。通常,与从磁盘获取数据块所需的工作相比,网络开销非常小,而且:这不会降低性能,只会降低延迟。 (可能连接/断开连接非常频繁的情况除外)
标签: python django postgresql connection-pooling pgbouncer