Медленное первое обращение к веб-службе ASMX после обновления до Windows Server 2008, IIS 7.5

Недавно у нас был новый рабочий сервер, созданный для обслуживания бизнес-приложений ASP.NET 4.0. Спецификации для нового сервера: Windows Server 2008 R2, 2-ядерный ксенон, IIS 7.5, 2 ГБ ОЗУ (скоро будет 4 ГБ). До нового сервера мы запускали / тестировали приложение на Windows Server 2003, одноядерный, IIS 6, 4 Гб оперативной памяти.

Наше приложение использует веб-сервис ASMX для проверки входа в Active Directory с использованием LDAP.

Мы сразу заметили, что при обращении к веб-службе с нового сервера значительно увеличилось время отклика, но только при первом обращении. Как ни странно, 99,9% времени отклика на этот "первый удар" составляет 15 секунд (буквально между 15000 и 15999 мс). Последующие обращения приводят к типичному времени ответа (<100 мс - 300 мс) для всех пользователей. Тем не менее, ожидание дольше, чем 2-3 минуты, вызовет повторное поведение "первого удара".

Время ответа одной и той же службы на старом сервере никогда не превышает 300 мс... Даже после перезапуска IIS6.

Трассировочный маршрут для старого и нового серверов одинаков. То же самое со временем отклика Ping.

После длительного тестирования единственный надежный способ воспроизвести (и таким образом определить "первый удар"):

а) подождите 2-3 минуты или

б) перезапустите пул приложений, или

в) перезапустить IIS

Приложение работает в своем собственном пуле приложений, используя.NET 4.0 Framework.

Вот текущее состояние приложения и IIS:

  • Вся переработка отключена для всех пулов (время простоя и фиксированные интервалы)
  • Нет отладочных ссылок в Web.config
  • Приложение предварительно скомпилировано (опубликовано в Visual Studio)
  • Управляемый трубопровод = Интегрированный
  • Идентичность = NetworkService
  • Работа в 64-битном режиме (переход на 32-битный режим не дал эффекта)

Сначала я подумал, что это проблема утилизации, так как я видел много сообщений, касающихся этого. Тем не менее, это не объясняет, почему поведение "первого удара" происходит после ожидания всего 2-3 минут.

Единственное, что я не пробовал, это разминка IIS. Это связано с тем, что: а) у меня нет прав на его установку и б) в моем представлении "первое попадание" относится к реальной странице входа, а не к службе (если я не ошибаюсь). Страница входа загружается менее чем за 300 мс, независимо от того, является ли она "первым нажатием" или нет.


Еще одно замечание... На самом деле у нас есть два новых сервера, которые идентичны. Одно из наших других приложений использует балансировку нагрузки на обоих серверах. Рассматриваемое приложение расположено только на одном из серверов и не сбалансировано по нагрузке. Может ли это быть как-то связано с этим..?

Надеюсь, вы можете помочь!

1 ответ

Решение

Таким образом, наши ИТ-специалисты решили проблему.

Хотя они не были точно уверены, в чем именно заключалась проблема, они думают, что это произошло потому, что с нашим доменным именем было связано два IP-адреса (для распределения нагрузки). После настройки и запуска Round Robin (VMWare) проблема, похоже, решилась сама собой.

Другие вопросы по тегам