小编Dor*_*orZ的帖子

Uvicorn 工人如何工作?一台超薄机器需要多少工人?

我部署的应用程序是K8s下的FastAPI with Uvicorn。在尝试了解如何对应用程序进行 Docker 化时,我明白我想在没有 Gunicorn 的情况下实现 Uvicorn,并添加一个根据应用​​程序收到的请求负载进行扩展/缩减的系统。我做了很多负载测试,发现默认情况下有 1 个 Uvicorn 工作人员,我可以获得 3.5 RPS,而将工作人员更改为 8 个时,我可以轻松获得 22 RPS(没有检查更多,因为这对我来说效果很好) 。

现在,我对资源的期望是,我必须提供的 CPU 限制为 8(我假设每个工作人员在一个进程和线程上工作),但我只看到内存使用量增加,但大麦在CPU中。也许是因为应用程序不使用那么多的 CPU,但它确实有可能使用超过 1 个 CPU?到目前为止,它没有使用超过一个CPU。

Uvicorn 工人如何工作?我应该如何计算该应用程序需要多少工作人员?我没有找到任何有用的信息。

再说一次,我的目标是保持一台 1 个 cpu 的超薄机器,并具有自动缩放系统。 LOCUST 20 RPS 截图

Grafana CPU 使用情况截图

python worker asgi fastapi uvicorn

5
推荐指数
1
解决办法
4975
查看次数

标签 统计

asgi ×1

fastapi ×1

python ×1

uvicorn ×1

worker ×1