
Я переношу наш веб-хостинг и хостинг базы данных в новую среду на всех новых машинах. Недавно я провел нагрузочный тест с использованиемВАПТдля генерации нагрузки от нескольких распределенных клиентов. На сервере достаточно места для обработки нагрузки трафика, но я вижу странную картину входящего трафика во время нагрузочных тестов.
Вот суть нашей установки:
- Сервер брандмауэра, работающий под управлением MS Forefront TMG 2010 на сервере Win 2k8
- Маршрутизация запросов выполняется службой маршрутизации запросов приложений IIS на брандмауэре
- Веб-сервер — это виртуальная машина Hyper-V на сервере базы данных (который является хостовой ОС)
- Эти машины мощные, с двумя процессорами с шестью ядрами (всего 12 процессоров)
- Веб-сервер под управлением IIS 7.5
- Веб-приложения, созданные на ASP.NET 2.0, с 1 фильтром ISAPI (Url Rewrite) спереди
Что я вижу во время нагрузочных тестов, так это то, что все запросы проходят всплесками. Несмотря на то, что у меня есть 7 разных распределенных клиентов, отправляющих трафик, запросы проходят примерно через 300-500 запросов за раз.
Монитор производительности показывает, что почти все счетчики движутся по этой схеме, где происходит всплеск запросов, req/sec подскакивает до 70, запросы в очереди подскакивают до 500, текущие запросы подскакивают, CPU подскакивает, все. Затем, как только он обработает эту группу запросов, наступает затишье в течение почти 10 секунд, когда почти ничего не происходит. 0-5 req/sec, 0 запросов в очереди, минимальное использование CPU. Затем после 10 секунд бездействия приходит еще один всплеск, снова подскакивая все счетчики.
Я не могу понять, почему запросы приходят рывками, когда я знаю, что генерируемая нагрузка не отправляется таким образом, особенно учитывая, что различные клиенты, генерирующие нагрузку, отправляют трафик в разные интервалы со случайными интервалами ожидания между каждым запросом. Есть ли что-то в слоях между Hyper-V или, возможно, в оборудовании, что может вызывать это объединение запросов?
Вот на что я смотрю: выделенная метрика — «Запросы/сек», но вместе с ней идет и другой важный счетчик: «Запросы в очереди» (который я, очевидно, хотел бы поддерживать как можно ближе к 0).
Есть идеи по этому поводу?
решение1
После гораздо большего количества тестов и исследований я решил эту проблему как результат инструмента нагрузочного тестирования WAPT. Были некоторые настройки, которые при настройке меняли эту модель.
Я подтвердил, что это продукт инструмента тестирования WAPT, как только настроил экземпляр WAPT и использовал Performance Monitor как на веб-сервере, так и на машине, генерирующей нагрузку. Легко сопоставить, чтобы увидеть, как пакеты, отправленные на сетевой интерфейс, вспыхивают с теми же интервалами и в то же время, что и запросы/сек на веб-сервере.