Загрузка сайтов тестирования за балансировщиком нагрузки EC2 с ApacheBench
Всякий раз, когда я пытаюсь выполнить нагрузочное тестирование сайта с балансировкой нагрузки на EC2, я получаю следующее сообщение:
ab -n 20 -c 20 http://www.somesite.com/
Benchmarking www.somesite.com (be patient)...Send request failed!
apr_socket_recv: Connection reset by peer (54)
Любые сайты, которые размещены на EC2 без балансировщика нагрузки, могут быть успешно протестированы под нагрузкой, поэтому я считаю, что это не связано с настроенной группой безопасности.
Блокирует ли балансировка нагрузки AWS EC2 этот тип запроса по умолчанию? Если да, то как он различает между http-запросом и обычным браузерным http-запросом?
3 ответа
Блокирует ли балансировка нагрузки AWS EC2 этот тип запроса по умолчанию?
Не то, что я знаю - вы случайно работаете с Mac OS X Lion? Похоже, что в этой конкретной версии операционной системы часто встречается ошибка запуска ab - согласно Исправлению ошибки ApacheBench в Mac OS X Lion доступен патч (подробности см. Там), хотя, вероятно, стоит и предпочтительнее проверить его на официальное обновление. Во-первых, поскольку этот патч (или эквивалентное исправление) предположительно был включен как минимум начиная с версии httpd-2.3.15-beta (см. Исправление Apachebench в OS X Lion).
Очевидно, что сначала вы можете проверить это (и применить его как обходной путь), запустив один и тот же тест из соответственно другой операционной системы (выпуск).
Удачи!
Amazon ELB увеличивается при увеличении нагрузки. Когда у вас есть 5 запросов в секунду, вы используете другой балансировщик нагрузки, чем люди, выполняющие 1000 запросов в секунду. Что происходит, когда вы запускаете тесты на load balancer, он обрабатывает от 5 до 1000 запросов в секунду, и load balancer не может обработать нагрузку, поэтому он будет отклонять запросы. Если вы ожидаете увеличения нагрузки на 10-15 минут во время выполнения теста, вы должны заметить, что все запросы будут выполнены.
Amazon может вручную обновить ваш балансировщик нагрузки, если вы ожидаете, что это вызовет проблемы в вашей производственной среде. У меня есть группа балансировки нагрузки / автоматического масштабирования, настроенная в облаке, и наш трафик может возрасти от нескольких сотен в секунду до нескольких тысяч в течение 1-2 часов в выходные дни, и мы фактически не видим такого поведения во время работы в реальной производственной среде мы видим это только тогда, когда запускаем тесты с jmeter.
Балансировщики нагрузки часто настроены на ограничение скорости или блокирование запросов, которые не выглядят так, как будто они пришли из "настоящих браузеров" в качестве меры безопасности. Я подозреваю, что это может иметь место здесь; Я уверен, что у Amazon есть несколько документов.
Подумайте о получении реального запроса из вашего браузера (используя, скажем, Fiddler или Firebug) и добавьте заголовки, которые вам могут понадобиться, с параметром ab's -H. Например, вам часто нужны "Host", "Accept" и "Accept-Encoding", возможно, со строкой user-agent, которая выглядит реалистично.