Я довольно новичок в нагрузочном тестировании с VS, но я думаю, что все настроил нормально, и у меня возникла проблема, когда выполнение моего Load Test быстро достигает 100% загрузки ЦП. Вероятно, это повлияет на мои результаты теста, и я предполагаю, что это не ожидаемое поведение.
Моя аппаратная платформа - сложная машина для разработчиков: несколько месяцев назад она была оснащена четырехъядерным процессором, 12 ГБ ОЗУ, 2 IDE-дисками и быстрой сетевой картой. Я могу уточнить, если это необходимо, но обычно я бы сказал, что это крики.
Я тестирую приложение MVC2 / 3, которое работает локально на Win7 x64, против MSSQL 2008, используя VS2010 SP1, C # /. NET 4.
Базовым тестом является модульный тест, в котором используется метод одного контроллера MVC, который использует Unity и другие библиотеки Ent-Lib для извлечения коллекции клиентов из базы данных в соответствии с правами пользователя. Типичное время выполнения модульного теста составляет от 0,4 до 0,6 секунд.
Тест нагрузки настроен на выявление проблемы с производительностью и выполняется в течение 10 минут:
- Начальное количество пользователей: 1
- Продолжительность шага: 30
- Количество шагов пользователя: 1
Замечания:
В течение первых 30 секунд для одного пользователя выполнение немного ошибочно. Первый тест занимает 3 секунды, что является нормальным прогревом. Следующие 15 или около того занимают около 0,4 секунды, что идеально. Однако через 10 секунд тесты начинают работать в течение 5 секунд. Это до включения второго виртуального пользователя. По мере появления дополнительных виртуальных пользователей время тестирования постепенно увеличивается, что и следовало ожидать, хотя время выполнения все еще кажется большим.
Больше беспокойства вызывает то, что загрузка ЦП резко возрастает у пользователя 6 (в среднем он составлял около 20% ранее по всем 8 ядрам). У пользователей 6 и 7 ЦП идет до 70% и привязывается к 100% на 8 ядрах пользователем 8 и остается там до тех пор, пока тест не завершится через 10 минут. Само собой разумеется, что для обычного пошагового теста я хотел бы начать с 10 одновременных пользователей и довести их до 100 или более, но мой ЦП запускается на 100%, и результаты, безусловно, неточные.
Купритом явно является QTAGENT.EXE, как я вижу по выполненным задачам. Он использует каждый запасной цикл процессора из того, что я вижу. Я также провел этот нагрузочный тест в 32-разрядном режиме, и QTAGENT32.EXE работает аналогично.
Я в недоумении, почему я испытываю эту проблему, не говоря уже о том, что с этим делать. Любые предложения или решения приветствуются. ТИА!
EDIT
Я обнаружил, что решение моей проблемы - запустить нагрузочное тестирование, нажав «Отладочный тест» вместо «Выполнить тест». Это на самом деле не имеет никакого смысла для меня, на самом деле это как полная противоположность того, что я ожидал; тем не менее, я не могу отрицать, что он постоянно запускает мои тесты с сотнями пользователей и только наполовину избивает мой процессор (~ 50% в среднем с пиками).