Pin указывающий на медлительность сайта - PullRequest
1 голос
/ 05 октября 2011

На работе у меня проблема с сайтом, над которым я работаю, и он немного озадачен.Это сайт Microsoft MVC 2, работающий на IIS6 в Windows Server 2003 с базой данных SQL Server, которая находится на другом сервере.

Эта проблема проявляется как крайне медленная при входе в систему, я написал быстрый скрипт для вызовастраница входа в систему 100 раз, а время варьировалось от 3 секунд до 14 секунд, но это было довольно странно.

Я запустил sql profiler во время входа в систему, и вы увидите, что вы нажмете на submit,пройдет секунда или слишком, вы увидите, как профилировщик sql регистрирует соединение, затем выполняет sql за миллисекунды, затем проходит еще пара секунд, прежде чем он будет перенаправлен.

В качестве проверки работоспособности мы развернули на другом сервере службу облачного хостинга, к которой у нас тоже есть доступ, и сайт работает быстро, тот же сценарий входа x100 для полного запроса постоянно занимает 1-2 секунды.

Итак, просто чтобы пройти через все, что мы исключили:

Это не серверное оборудование, так как использование процессора и памяти вряд ли что-то значит.Это не полоса пропускания, так как после подключения к Sql Server скрипты, которые выполняются последовательно, очень быстры.Это не выполнение Sql или какие-либо проблемы с индексированием, sql выполняется очень быстро.

На этом этапе возникает проблема с тем, как приложение выполняет открытие и закрытие начального соединения с сервером SQL.Подобно тому, как рукопожатие между серверами занимает все время, потому что после подключения взаимодействие с базой данных происходит очень быстро.

Я просто не могу понять, какая разница между этим сервером и облачным сервером, на котором он работает нормально,be.

Буду очень признателен за любые предложения инструментов или тестов, которые я смог бы выполнить.

Спасибо.

1 Ответ

1 голос
/ 06 октября 2011

Попробуйте использовать что-то вроде Red Gate Ants Profiler - он покажет вам время всего управляемого кода (даже того, что написано в Framework, у которого нет исходного кода - просто убедитесь, что вы выбрали фильтр дляпокажи это).(Пробная версия должна работать нормально).

Это должно дать вам представление о том, потрачено ли время на управляемой стороне.Если это не так, будет сложнее отследить, но вот несколько идей:

  • DNS
  • Аутентификация (может ли это быть внешняя аутентификация, как на контроллере домена?)
  • Сетевое соединение между серверами
  • Не удается подключиться к одному протоколу, откат к другому ( Брандмауэр? )
  • LLMNR?

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...