我有一个关于 django-rq 的问题。它是 pip 安装的库,作为 python-rq 之上的一个小层,它在 redis 实例上运行。目前,我在本地 redis 实例上使用数据库 0 的默认队列上运行所有作业。
我通过在默认队列上为 x 个工作人员运行以下脚本 x 次来启动工作人员:
nohup ~/.virtualenvs/prod/bin/python3 manage.py rqworker default &
nohup rq resume --url="redis://localhost:6379/0"
我在 8 核 / 32GB RAM 机器上运行。对于每个传入的请求,都需要一个工作人员来处理该作业,这在后台进程中通常需要 3 到 60 分钟,该进程使用 OpenCV、Tesseract 和一些其他 API,并在此过程中发出一些 HTTP 请求。
我如何知道我应该使用的 rq 工作人员的理想数量?我正在查看管理面板,上面写着 8 名工人。这是我应该使用的理想工人数量吗?我应该使用 20 吗?100个怎么样?
我如何考虑以下变量,以便选择我应该启动的正确数量的工人:
- 传入请求数
- 每个进程所需的 RAM 量
- 核心数
- 工人可能崩溃的可能性