我们正在使用 fastapi、uvicorn、sqlalchemy 和 PostgreSQL 构建 ASGI 应用程序。问题是:与具有多个工作线程的 WSGI 应用程序相比,我们应该如何设置pool_size才能create_async_engine不使其成为瓶颈?
据我了解,在 WSGI 应用程序中,如果我们使用每个(和)线程运行N进程,我们将获得最多连接。但是 ASGI 怎么样(如果我们有一个进程)——可以打开多少个连接?另外(因为我们每个进程只创建一个)?那么我们应该将其设置为?Mpool_size=MN * Mpool_sizeAsyncEnginepool_size=N * M
而且,如果我们简单地增加这个数字,那么我们就能够await向数据库发出更多的并发请求,对吧?
其背后的直觉是什么?
提前致谢!