У меня есть тестовая среда для моих веб-приложений Asp.Net 4.0. Он работает на выделенном веб-сервере Windows 2003 (IIS 6), но он медленный! У машины никогда не бывает 100% ЦП и того же по памяти. Когда я запускаю приложение на рабочем сервере, оно работает чертовски быстро.
Я думаю, что это связано с ужасной полосой пропускания тестового сервера. Он использует удаленный SQL-сервер. Как я могу проверить, является ли удаленный SQL узким местом? И как я могу проверить, является ли загрузка машины узким местом?
Спасибо заранее, JP
Редактировать: Скорость сети: средний пинг от теста до базы данных составляет 33 мс. www.Speedtest.net дает testserver: 10 Мбит вниз / 0,8 Мбит вверх. Удаленный сервер базы данных: 94 Мбит вниз / 74 Мбит вверх. Но 0.8mbit up (тестовый сервер) - это примерно 100 килобайт в секунду. Должно хватить на несколько простых запросов sql? или не?
Я использовал настройку тестовых сред таким же образом в прошлом при такой же скорости подключения к вашей, и было едва заметно, что SQL Server был где-то еще (только тестирование, никогда не пробовал интенсивное использование).
Единственное исключение - когда в приложение передается тонна данных, а не небольшие объемы (вы можете увидеть тот же эффект, если вы удаленный рабочий стол на удаленный сервер, запустите запрос с большим количеством результатов, и результаты будут возвращены в пределах 1 -2s - запустите запрос удаленно, и загрузка займет 3x / 4x / 5x, в зависимости от вашего соединения).
Можете ли вы добавить в свое веб-приложение пару счетчиков дат, чтобы сообщать о времени, затраченном на подключение к SQL Server, времени, затраченном на получение результатов, времени, затраченном на отображение страницы? Или вы можете получить то же самое с помощью SQL Trace? (и получите сравнение для производственного сервера)