Как увеличить скорость сообщений rabbitmq с сельдереем? - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь вызывать почти 10 000 запросов api отдыха в минуту с использованием сельдерея и кролика Однако скорость публикации слишком низкая, почти 100 / с. Когда я уменьшил количество запросов до почти 1 000 запросов в минуту, скорость его публикации достигла 400 / с.

Увеличение числа рабочих, изменение режима доставки рабочих на переходный, увеличение параллелизма (использование eventlet в качестве пула), разделение задач на использование разных очередей не сильно повлияло на публичную ставку. Только уменьшение количества заданий показывает значительное улучшение скорости публикации.

Как мне увеличить скорость публикации rabbitmq? Есть ли что-то еще, что стоит попробовать?

Я использую версию сельдерея 4.2.2, версию rabbitmq 3.6.10. Экземпляр AWS EC2 t2.large (vCPU = 2, 8 ГБ ОЗУ) используется для базы данных (mongodb), очереди сообщений (rabbitmq) и администрирования (rabbitmq admin и flower) Экземпляр AWS EC2 t2.micro (vCPU = 1, 1 ГБ ОЗУ) используется для рабочего

конфигурация в celery.py

CELERY_USERNAME = get_env_variable('CELERY_USER')
CELERY_PASSWORD = get_env_variable('CELERY_PASSWORD', is_password=True)
CELERY_HOSTNAME = get_env_variable('CELERY_HOST')
CELERY_VHOST = get_env_variable('CELERY_VHOST')
CELERY_BROKER = 'amqp://%s:%s@%s/%s' % (CELERY_USERNAME, CELERY_PASSWORD, CELERY_HOSTNAME, CELERY_VHOST)

app = Celery('scheduler',
             broker=CELERY_BROKER,
             broker_pool_limit=10,
             include=['scheduler.tasks'],
             )

команды для запуска рабочих

celery -A scheduler worker -l info -c 50 -P eventlet --prefetch-multiplier 10

Когда я пробовал 1к запросов в минуту

1k запросов rabbitmqadmin

Последние два столпа имеют релевантный результат

1к запросов цветов

Когда я пробовал 10 000 запросов в минуту

10k запросов rabbitmqadmin

10k запросов цветок

- отредактировано -

Я сделал несколько журналов для каждой задачи и обнаружил, что планировщик ритма сельдерея отправляет задачи медленно. Есть ли способ увеличить этот показатель?

...