【发布时间】:2021-09-27 14:17:58
【问题描述】:
您好,我正在使用 Fastapi(获取请求)实现一个微服务端点 它做了两件事
**1.从基于 postgres 的数据库中获取数据 - 获取表需要 1 秒(I/O 操作)
2.对该数据执行操作以返回响应 - 对上面获取的数据执行操作需要 0.5 秒(CPU 限制)
1 个请求所用的总时间 = 1.5 秒**
我正在使用带有异步数据库连接的异步端点,因此对于 10 个并行请求,它花费的总时间是 5 秒,不应该是 1.5 秒,因为我的端点是异步的(我的数据库操作也支持异步,所以这不是瓶颈)。
我用 univorn 运行它,worker=1 是什么导致了这种额外的开销?在异步获取表后,第二个操作是 CPU 绑定的顺序执行吗?
如何通过增加工人(进程)来扩展 CPU 绑定部分。
【问题讨论】: