Как проверить 1000 клиентов Windows 7 клиентов
У нас есть клиенты.net, работающие на Windows 7, встроенные с SQL Server Express. Они запускаются отключенными, и очень часто они подключаются к центральному серверу, выводят их информацию и выводят новую информацию. Мы хотим провести стресс-тестирование всей распределенной системы и пытаемся найти экономически эффективный способ сделать это. У одного из наших разработчиков была идея использовать облако Amazon и ускорить работу 1000 клиентов, но они поддерживают только операционную систему Windows Server и выглядят так, как будто это может стоить денег, если вам придется повторно запускать тест несколько раз, что вероятно,
Мы думали о том, чтобы смоделировать 1000 клиентов на одной машине, что могло бы создать 1000 клиентов и выполнять все вызовы асинхронно, но если вы работаете на одной машине, некоторые из ваших потолков будут ОЗУ и процессор одной машины по сравнению с большей система, поэтому я не уверен, насколько "реальной" картины она нам даст.
Все вызовы происходят с WCF между клиентом и сервером.
У кого-нибудь есть опыт в этой области, и если да, то как вы справились с этим?
Спасибо,
Супер Тимми
3 ответа
Вы смотрели на SOASTA? Они обеспечивают тестирование загрузки SOA на основе облака.
Если вы используете WCF с текстовым протоколом по HTTP (что кажется вероятным), у вас есть ряд доступных инструментов. Большинство инструментов веб-нагрузочного тестирования могут записывать HTTP-трафик, выступая в качестве прокси-сервера для браузера, что, как правило, также позволяет выполнять запись с богатых клиентов. Возможно, вам придется сделать некоторые дополнительные настройки ваших тестовых случаев, так как инструменты оптимизированы для имитации браузеров. Мы сделали это для нескольких наших клиентов, и это сработало довольно хорошо.
Ряд инструментов нагрузочного тестирования поддерживают генерацию нагрузки из облака (включая нашу - Web Performance Load Tester - и другие, такие как BrowserMob, LoadStorm и т. Д.), Поэтому начните оценку с них - это сделает моделирование 1000 виртуальных пользователей очень простым и доступным, так как Что ж.
Разделяй и властвуй, посмотри, сможешь ли ты подключить целевой тестовый сервер к тому же коммутатору, что и твои разработчики. Используйте разделение клиентов на эти машины и заставьте всех работать на тестовом сервере. (придерживание того же коммутатора удаляет сетевые эффекты от искажения результатов на оборудовании)
Разработчики обычно имеют довольно ворчливые машины, и обычно их несколько. Таким образом, вы не уничтожите тестовую машину и сможете следить за происходящим.
В идеале вы сможете использовать агент тестирования нагрузки Visual Studio 2010 на компьютерах разработчиков. Этот инструмент даст вам возможность отслеживать статистику со всей машины в тесте и дать действительно хорошее представление о том, как реагирует ваш сервер.
Если на машинах, на которых выполняется тестовый тест, размещена веб-страница на локальном хосте, которая вызывает требуемый веб-сервис, может быть лучшим вариантом для проведения теста.
Это зависит от точного характера вашей среды разработки и условий лицензирования Visual Studio.
Одна из ключевых вещей, которую нужно выяснить, - это количество запросов в секунду, которое каждый клиент будет делать из веб-службы WCF. Получив это число, вы можете разделить его на максимальное количество запросов / секунду для каждого тестового компьютера, чтобы выяснить, сколько тестовых компьютеров требуется.
Для целей нагрузочного тестирования вам не нужно иметь "настоящих" клиентов вашего веб-сервиса. Поскольку веб-сервис представляет собой интерфейс, вы можете имитировать активность обычного клиента и запускать его без обычных "задержек на обдумывание", что дает вам возможность протестировать нагрузку на 1000 клиентов без необходимости запуска экземпляра каждого клиента.
Например, если каждый клиент обращается к веб-службе один раз в минуту, то есть 1000/60 = 16,7 вызовов в секунду. Если каждый вызов завершится за 3 секунды, 50 виртуальных пользователей смогут создать одинаковую нагрузку (50/3=16,7). Исходя из опыта, две машины с нагрузочным тестом Visual Studio могли бы генерировать нагрузку, а не перегружать их ЦП.