celery에 작업자 수를 제한 할 방법이 있습니까? 작은 서버가 있고 샐러리는 항상 1 코어 프로세서에서 10 개의 프로세스를 생성합니다. 이 숫자를 3 개의 프로세스로 제한하고 싶습니다.셀러리. 프로세스 수를 줄이십시오.
답변
내 settings.py 파일에서 동시성을 1로 설정하고 max_tasks_per_child를 1로 설정하고 동시에 3 개의 작업을 실행했습니다. 그것은 단지 하나의 프로세스를 사용자로 생성하고 다른 2는 셀러리로 생성합니다. 그것은 단지 하나의 프로세스를 실행 한 다음 다른 프로세스를 실행하기 전에 완료 될 때까지 기다려야합니다.
나는 장고 셀러리를 사용하고 있습니다.
편집 {
나는 settings.py 파일에 CELERYD_CONCURRENCY = 1를 작성하여 동시성을 할당했다. 그러나 "tail -f /var/log/celery/w1.log"를 사용하여 셀러리 로그 파일을 살펴보면 동시성에 8을 할당하는 것을 보았습니다. 이것은 setting.py가 동시성을 변경하지 않는다는 것을 말해 줬다. 이 문제를 해결하기 위해 "/ etc/default/celeryd"파일에 다음 줄을 추가했습니다.
# Extra arguments to celeryd
CELERYD_OPTS="--concurrency=1"
이제 대기열의 두 번째 작업은 첫 번째 작업이 끝날 때까지 대기합니다.
}
셀러리 작업 --concurrency 옵션을 사용하면 큐를 처리하는 하위 프로세스 수를 지정할 수 있습니다.
'CELERYD_CONCURENCY = 1'이 (가) 작동하지 않습니다. 여전히 10 개의 프로세스가 생성됩니다. 그리고 ** - 동시성 = 1 **은 같은 효과가 있습니다. –
자동 크기 조절 기능을 사용하고 있습니까? – mher
기본적으로 사용하는 경우 - 예. –
나는 FOUR 프로세스가 아닌 두가 있습니다
$ ps -ef | grep "celery" | grep -v "grep"
www-data 1783 1 0 17:50 ? 00:00:46 /usr/bin/python /opt/webapps/repo/manage.py celeryd --loglevel=INFO -n celery1.xxx-31-39-06-74-75 --logfile=/var/log/celery/1.log --pidfile=/var/run/celery/1.pid
www-data 1791 1783 0 17:50 ? 00:00:01 /usr/bin/python /opt/webapps/repo/manage.py celeryd --loglevel=INFO -n celery1.xxx-31-39-06-74-75 --logfile=/var/log/celery/1.log --pidfile=/var/run/celery/1.pid
www-data 1802 1 0 17:50 ? 00:00:52 /usr/bin/python /opt/webapps/repo/manage.py celeryd --loglevel=INFO -n celery2.xxx-31-39-06-74-75 --logfile=/var/log/celery/2.log --pidfile=/var/run/celery/2.pid
www-data 1858 1802 0 17:50 ? 00:00:01 /usr/bin/python /opt/webapps/repo/manage.py celeryd --loglevel=INFO -n celery2.xxx-31-39-06-74-75 --logfile=/var/log/celery/2.log --pidfile=/var/run/celery/2.pid
결과 내 celeryd-config 파일
CELERYD_NODES=2
이있다, 그러나이 명 노동자가있다. 각 작업자 스레드에는 두 개의 프로세스가있는 것처럼 보입니다. 따라서 CELERYD_NODES를 3으로 설정하면 3 명의 직원을 얻으 려하지만 6 개의 프로세스를 얻게됩니다.
나를 위해이 옵션을 무시합니다. CELERYD_NODES = 1이면 10 개의 프로세스가 생성됩니다. CELERYD_NODES = 2는 10 개의 프로세스를 생성합니다. –
- 1. SPSS의 기능 수를 줄이십시오
- 2. 최대 절전 모드에서 열의 수를 줄이십시오.
- 3. Maven 빌드에서 GWT 순열의 수를 줄이십시오.
- 4. SESSION_DESTROY에서 PHP 온라인 사용자 수를 줄이십시오.
- 5. 셀러리 그룹은이 셀러리 2에서
- 6. NSString을 줄이십시오?
- 7. 셀러리
- 8. mpi4py의 프로세스 수를 설정하는 방법
- 9. uwsgi : 장고 앱에 필요한 작업자/프로세스 수를 정의하는 것은 무엇입니까?
- 10. 셀러리 분할 오류
- 11. jquery 스크립트를 줄이십시오
- 12. 셀레늄 프레임의 크기를 줄이십시오
- 13. 문자열을 제품 이름으로 줄이십시오.
- 14. 파이썬의 수입을 줄이십시오?
- 15. 복잡도와 검색 횟수를 줄이십시오.
- 16. URL을 mod_rewrite로 줄이십시오.
- 17. 이맥스. 긴 줄을 줄이십시오.
- 18. UIScrollView의 터치 지연을 줄이십시오?
- 19. 이미지의 크기를 줄이십시오 android
- 20. gdb의 메모리 사용량을 줄이십시오.
- 21. 셀러리 오류
- 22. 셀러리 작업은
- 23. 장고 셀러리 FIFO
- 24. 셸 스크립트를 사용하는 프로세스 수를 계산합니다.
- 25. 셀러리 용어에 대한 약간의 혼동
- 26. 대역폭 스트리밍 mp3s를 줄이십시오. PHP
- 27. PHP 데몬 메모리 사용량을 줄이십시오.
- 28. 이미지 크기를 KB 단위로 줄이십시오.
- 29. android에서 비디오 크기/화질을 줄이십시오.
- 30. 셀러리와 Django, 로깅 셀러리
3 가지 프로세스에 동의하지만, 나에게는 항상 10이 생성됩니다. –
나는 3 개의 프로세스 만 시도했다. 나는 한계를 모른다. 주된 것은 동시성이 1이면 왜 후속 작업이 실행 중인지입니다. 그들은 보류 상태에 있어야합니다. – fatrock92
와우! '/ etc/default/celeryd'를 편집하면 도움이되었습니다! 고마워요! =) –