Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

Так как @HBruijn Стоит отметить, что существует отличный инструмент с открытым исходным кодом, который называется Пчелы с автоматами который автоматизирует создание, разборку и координацию генерации нагрузки через EC2. Похоже, это правильный подход для вашей ситуации.