首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-rq和python的理想工人人数是多少?

django-rq和python的理想工人人数是多少?
EN

Stack Overflow用户
提问于 2021-04-13 13:57:38
回答 1查看 907关注 0票数 1

关于django-rq我有个问题。pip安装的库作为python之上的一个小层,运行在redis实例上。目前,我在本地redis实例上使用数据库0的默认队列上运行所有作业。

我在默认队列中为x个工作人员运行了以下脚本x次,从而提高了工作人员的效率:

代码语言:javascript
复制
nohup ~/.virtualenvs/prod/bin/python3 manage.py rqworker default &
nohup rq resume --url="redis://localhost:6379/0"

我是在一个8核心/32 an的RAM机器上操作的。对于每个传入的请求,工作人员都需要处理作业,作业在后台进程中通常需要3到60分钟,使用OpenCV、Tesseract和其他几个API,在执行过程中发出几个HTTP请求。

我如何知道我应该使用的rq工人的理想数量?我正在看行政小组,上面说有8名工人。这是我应该使用的理想数量的工人吗?我要用20块吗?100块怎么样?

如何解释下列变量,以便选择正确的员工数量:

每个进程所需的内存输入requests

  • amount的
  1. 数,可能会导致

崩溃的工人的

EN

回答 1

Stack Overflow用户

发布于 2021-08-19 12:24:59

使用RQ已经有一年了。

这个答案完全取决于你正在运行的是什么。如果你是CPU/内存密集型的计算,你显然不能旋转很多。例如,我做了大量的数字运算,所以我在2gb RAM vps上运行了大约2,有时是3的RQ工作人员。我不确定这是否适用于每个人,但是运行django RQ工作人员w/o,工人做任何事情都会消耗大约150 is的getgo内存。也许我配置错了什么东西。当它实际处理作业时,有时每个工人的RAM使用量高达700 MB。

如果您打包了太多的作业,您就会得到JobFailed错误,而没有明确说明原因。由于RQ (异步计算)的特性,除非您投入大量日志记录,或者有测量和收集cpu/内存使用情况的开销,否则您真的无法判断。或者运行htop并手动查看利用率。

我的建议:

  1. 水平扩展(每台服务器减少工作人员),而不是垂直(强大的机器w/吨工人)
  2. 限制每个作业的执行时间#。1分钟作业比1 100分钟作业好,

  1. 使用微芯片和blist模块进行大型CSV / list处理。它们在内存/ CPU使用

上的效率要高出100倍。

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

https://stackoverflow.com/questions/67076329

复制
相关文章

相似问题

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