Мы запускаем сайт с классическим asp и ASP.NET MVC 4 (C #) бок о бок. Во время высокого трафика запросы к базе данных выполняются очень медленно на страницах asp. В то же время на одном сайте страницы C # всегда нормально подключаются к одной и той же БД. Использование ЦП, памяти и сети на обоих серверах в норме (мощное оборудование / соединение).
Сайт годами без каких-либо проблем работал с одной и той же настройкой и загрузкой трафика, такое поведение началось около недели назад. Кто-нибудь знает, что может быть не так?
Сервер БД: SQL Server 2012 Web Edition
Веб-сервер: Windows Server 2012 IIS 8.0
Connection string:
conn.connectionString = "Provider=SQLNCLI11;Persist Security Info=True;User ID=abc;Password=abc;Initial Catalog=sampledb;Data Source=192.168.10.11"
Пример времени загрузки (мс) в журнале сервера iis:
2015-09-05 18:00:07 23642 /page.asp
2015-09-05 18:00:07 13547 /page.asp
2015-09-05 18:00:07 93 /ASP.NET
2015-09-05 18:00:07 11172 /page.asp
2015-09-05 18:00:07 78 /ASP.NET
2015-09-05 18:00:07 578 /ASP.NET
2015-09-05 18:00:07 10828 /page.asp
2015-09-05 18:00:07 32252 /page.asp
2015-09-05 18:00:07 13641 /page.asp
Иногда для asp-страниц лучше использовать числа:
2015-09-05 18:07:30 218 /page.asp
2015-09-05 18:07:30 3281 /page.asp
2015-09-05 18:07:30 46 /page.asp
2015-09-05 18:07:30 2375 /page.asp
2015-09-05 18:07:30 78 /page.asp
2015-09-05 18:07:30 46 /ASP.NET
2015-09-05 18:07:30 203 /ASP.NET
2015-09-05 18:07:30 2906 /page.asp
2015-09-05 18:07:30 1781 /page.asp
Запросы Asp обычно просто медленные, но иногда мы получаем ошибку:
Microsoft SQL Server Native Client 11.0 error '80040e31'
Query timeout expired
Тестовая страница .asp, выполняющая шесть идентичных SQL-запросов, с общим временем загрузки страницы в секундах. Один запрос занимает 13 секунд, другие почти мгновенно. При следующем запуске другой запрос выполняется медленно, иногда все они выполняются быстро.
Query 1: 0
Query 2: 0,3554688
Query 3: 0,375
Query 4: 13,32813
Query 5: 13,32813
Query 6: 13,32813
Установите SQL Server Management Studio на свой веб-сервер (или другой компьютер в той же сети) и выполните несколько запросов, которые выполняет ваше приложение.
Включите вашу клиентскую статистику. Они могут сказать вам, что происходит.
Чем больше вы его запускаете, тем больше статистики он будет собирать и показывать вам