Нагрузочное тестирование со скоростью 350000 запросов в минуту

Мне нужен способ воспроизвести внезапный всплеск трафика, который испытал наш сайт некоторое время назад, чтобы иметь возможность поддерживать работу нашего стека.

Наш балансировщик нагрузки сообщил в определенный момент, что около 350 тыс. Запросов выполнялось в минуту, разрушая все, от операционной системы до сбивания бэкэндов. Я попытался найти службы, выполняющие этот пакетный тест, но кажется, что при настройке параметров теста в соответствии с желаемыми условиями это просто будет стоить слишком дорого.

Как я могу загрузить тестирование моего стека так, чтобы это соответствовало этим условиям?

1 ответ

Решение

Таким образом, это 5833 запроса в секунду, что много, но выполнимо. Я бы порекомендовал использовать инструмент под названием siege, Экспериментируйте с различными вариантами параллелизма, пока не достигнете пика Transactions per second: оценить в siege выходной. Вы также можете использовать ab (ApacheBench) из проекта Apache, но siege гораздо мощнее.

Затем добавляйте больше машин, пока не получите, скажем, 6000. Вероятно, вы можете экономически эффективно использовать Amazon EC2 или даже просто настроить несколько компьютеров на разных интернет-каналах в разных местах с помощью ssh доступ к ним. Вы могли бы использовать cron или же at начать siege одновременно на всех машинах (сначала убедитесь, что часы синхронизированы).

Что касается использования сторонней компании для проведения теста, да, это может быть слишком дорого, и я не думаю, что мне позволено указывать на какую-либо конкретную компанию, но я работал с некоторыми в прошлом, Это определенно то, что вы можете сделать самостоятельно, потратив несколько часов на EC2.

редактировать

Как HBruijn, существует замечательный инструмент с открытым исходным кодом под названием " Пчелы с пулеметами", который автоматизирует создание, демонтаж и координацию генерации нагрузки через EC2. Это звучит как правильный подход к вашей ситуации.

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