Саранча - Штриховка - EC2

Я использую саранчу для загрузки приложения. Я написал и протестировал скрипт в моей локальной системе Ubuntu, и все прошло хорошо.

Я создал экземпляр EC2, используя образ Amazon Linux, и после настройки лимитов файлов в файле /etc/security/limits.conf я загрузил саранчу, и все прошло нормально для небольшого теста (простой тест GET, просто чтобы проверить сантехнику) 2000 пользователей, 20 люков).

Тем не менее, когда я загрузил более крупный тест с 8000 пользователей и 40 показателями штриховки, я заметил, что где-то около 3 000 или 4 000 пользователей скорость штриховки, по-видимому, снижается, просто добавляя 4–5, а не 40 новых "пользователей" за раз. Таким образом, потребовалось много времени, чтобы достичь 8000. Является ли это ожидаемым поведением, если нет, какой-либо идеи, в чем может быть проблема?

1 ответ

То, что Locust называет "пользователями", на самом деле порождает TaskSets. Это означает, что вы порождаете тысячи Eventletts в одном процессе Python, что означает большие накладные расходы на управление этими Eventlet.

Если вы хотите создавать тысячи TaskSets, я бы порекомендовал запустить Locust в распределенном режиме. Вы можете иметь много подчиненных, работающих на одном и том же оборудовании, или распределить свои подчиненные по множеству экземпляров. Google написал аккуратную статью и открыл некоторые контейнеры Kubernetes для этой цели. Мы написали наш собственный Docker-контейнер с Alpine и сильно модифицированным Locust, наше соотношение рабов и TaskSets в итоге составило 1:100. Соотношение рабов и экземпляров сильно зависит от размера экземпляра, который вы получаете.

Другие вопросы по тегам