多个工作人员不处理并发请求

alz*_*alz 6 python multithreading gunicorn fastapi uvicorn

我正在使用 EC2 AWS 实例中托管的 FastAPI。

EC2 实例规格(g4dn.xlarge):16 GB 内存,4 个 CPU,GPU:NVIDIA T4

我正在对该应用程序进行压力测试。如果我向应用程序同时发送 10 个 POST 请求,则只有 5 个请求同时(完全相同的时间)得到处理,而其他请求则在不同的时间(几秒钟后)一一处理。

配置如下

gunicorn main:app --workers 9 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)

workers根据这个公式,我已将 9 设置为 9The suggested maximum concurrent requests when using workers and threads is (2*CPU)+1.

鉴于上述配置,我希望能够同时处理所有 10 个请求。

对于 9 个工作人员,即使我清理了缓存,我也会遇到 CUDA 内存不足错误。

有 3 个工作人员时,我不会遇到 CUDA 问题,但同时处理的请求只有 3 个,仅此而已。其余的将在几秒钟后一一处理。