首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gunicorn没有使用所有的CPU,导致大量请求失败

gunicorn没有使用所有的CPU,导致大量请求失败
EN

Stack Overflow用户
提问于 2022-01-30 08:03:41
回答 2查看 827关注 0票数 1

我正在测试AWS EC2机器上的一个gunicorn服务器(使用使用快速at的Uvicorn工人),并将其映射到ssh -L 8000:localhost:8000(执行ssh -L 8000:localhost:8000),以便将本地机器上端口8000的所有请求路由到EC2机器。

我正在使用k6从本地机器为EC2实例中的gunicorn服务器生成人工流量(负载测试)。只有500-800VU,超过46%的请求总是失败,但是EC2机器的CPU使用率从未超过30% (来自htop)。我使用的是c5a.2x大型机器(有4个核心或8个线程)。

这里是我如何从终端(由于配置,与4名工人发射火奴鲁角):

代码语言:javascript
复制
$ gunicorn api.main:app --worker-class uvicorn.workers.UvicornWorker --user dockerd --capture-output --keep-alive 0 --port 8000

我使用的配置文件是从蒂安戈洛的乌维科恩-古尼考-码头

这是一个快速的应用程序,提供一个没有任何调用数据库或诸如此类的科学知识学习模式。所以,这是一个完全的cpu绑定应用程序。

我很高兴根据需要提供更多的信息。

在uvicorn或gunicorn中,我要做哪些更改,以便以尽可能少的失败率满足大量请求,同时最大限度地(或在所需程度上)使用所有资源。

EN

回答 2

Stack Overflow用户

发布于 2022-01-31 09:06:58

请在您的实例中检查负载平均值。CPU可能没有被最大化,因为磁盘正在成为瓶颈。如果负载平均值表明有几个作业堆积,但CPU %没有上升,这可能意味着磁盘延迟。

最好删除所有的日志。负载平均值可用在"sudo htop“中。你可以查一下。我现在很确定你的问题是磁盘

票数 1
EN

Stack Overflow用户

发布于 2022-08-30 04:30:34

我认为问题是UvicornWorker。有了一个科学学习模型,更好地使用CPU绑定。将其更改为--worker-class=g线程

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70912912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档