![](/img/trans.png)
[英]Best practice of testing django-rq ( python-rq ) in Django
[英]What is the ideal number of workers in django-rq and python-rq?
我有一個關於 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 worker 的理想數量? 我正在查看管理面板,它說有 8 個工人。 這是我應該使用的理想工人數量嗎? 我應該使用 20 嗎? 100 怎么樣?
我如何考慮以下變量,以便選擇我應該啟動的正確數量的工人:
現在已經使用 RQ 大約一年了。
這個答案完全依賴於你正在運行的東西。 如果你是 CPU/內存密集型計算,你顯然不能旋轉很多。 例如,我做了很多數字運算,所以我在 2gb RAM vps 上運行大約 2 個,有時是 3 個 RQ worker。 我不確定這是否適合所有人,但是運行 django RQ worker w/o worker 做任何事情都會從 getgo 吃掉大約 150mb RAM。 也許我配置錯了。 當它實際處理作業時,有時每個工作人員的 RAM 使用量會高達 700 MB。
如果打包太多作業,則會出現 JobFailed 錯誤,但沒有明確說明原因。 由於 RQ(異步計算)的性質,除非您輸入大量日志記錄或有測量和收集 cpu/內存使用情況的開銷,否則您真的無法分辨。 或者,或者運行 htop 並手動查看利用率。
我的建議:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.