Я работаю с сельдереем с docker swarm
и заметил, что docker service ls
показывает значительно меньше процессов, чем системные инструменты (например, top)
Это то, что я получаю, когда запускаю docker service ls
docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
(...)
mdisx2effvfp stack_celery replicated 1/1 some:url
(...)
Это то, что я получаю, когда запускаю ps
ps ax | grep celery
7606 ? Ss 0:49 /usr/local/bin/python /usr/local/bin/celery -A my_package_name worker --loglevel=WARNING -Q my_queue_name
7733 ? S 11:53 /usr/local/bin/python /usr/local/bin/celery -A my_package_name worker --loglevel=WARNING -Q my_queue_name
7734 ? Sl 6:02 /usr/local/bin/python /usr/local/bin/celery -A my_package_name worker --loglevel=WARNING -Q my_queue_name
7735 ? S 5:52 /usr/local/bin/python /usr/local/bin/celery -A my_package_name worker --loglevel=WARNING -Q my_queue_name
Это то, что у меня есть в моем docker-compose.yaml
cat docker-compose.yaml
(...)
celery:
image: some:url
command: celery -A my_package_name worker --loglevel=WARNING -Q my_queue_name
depends_on:
- queue # this is my other container with rabbitmq
deploy:
restart_policy:
condition: any
replicas: 1
resources:
limits:
memory: 1G
configs:
- source: celeryconfig.py
target: /my_package_name/celeryconfig.py
networks:
- backend
Я что-то упустил?
Я бы предположил (исходя из моих конфигов, конечно) docker service ls
должен показывать то же количество процессов, что и обычные системные инструменты ...
Пожалуйста, помогите мне понять.
- edit (1) -
Я также могу подтвердить, что при масштабировании до нуля я вообще не получаю никаких процессов:
docker service scale stack_celery=0
Когда я это сделаю, то ps
будетне показать сельдерея.Как только я уменьшу масштаб до 1, в ps
я вижу, что есть (опять же) 4 процесса.
- edit (2) -
ОК, я бы не подумалсельдерей будет автоматически порождать процессы, чтобы приспособиться к числу процессоров.-c 1
исправляет "проблему".