关于django-rq我有个问题。pip安装的库作为python之上的一个小层,运行在redis实例上。目前,我在本地redis实例上使用数据库0的默认队列上运行所有作业。
我在默认队列中为x个工作人员运行了以下脚本x次,从而提高了工作人员的效率:
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
崩溃的工人的
发布于 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并手动查看利用率。
我的建议:
,
上的效率要高出100倍。
https://stackoverflow.com/questions/67076329
复制相似问题