Проблема развертывания приложений ASP.NET - PullRequest
0 голосов
/ 15 мая 2009

Я развернул приложение, написанное на ASP.NET 2.0, в производство, и у него возникли некоторые проблемы с задержкой. Загрузка страниц занимает около 4-5 секунд. Обновление GridView занимает примерно одно и то же время для загрузки.

Приложение отлично работает в окне разработки. Я провел следующее исследование на сервере

  1. Проверено доступная память ... использовано 80%.
  2. Проверено процессор ... 1%
  3. Проверено IO диска от perfmon, менее 15%

Конфигурация сервера

Windows Server 2003 Sp2 Двойной 2,0 ГЖ 2 ГБ ОЗУ

Запуск SQL Server 2005 и только IIS

Есть ли что-то еще, что я могу устранить? Я также проверил журнал событий на наличие ошибок, он чистый.

EDITED ~ Единственное различие, которое я только что обнаружил, заключается в том, что на устройстве DEV я использую IE7, а клиенты используют IE6 - это может быть проблемой?

ОБНОВЛЕНИЕ ~ Я обновил все клиенты до IE8 и заметил повышение производительности на 30%. Я наконец-то узнал, что оставил свой debug = true в файле web.config. Установка на пламя вернула приложение к стабильной производительности ... Я до сих пор не могу поверить, что сделал это.

Ответы [ 5 ]

2 голосов
/ 15 мая 2009

Первое, что я хотел бы сделать, это включить трассировку. (см .: http://www.4guysfromrolla.com/webtech/081501-1.shtml)

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

System.Diagnostics.Trace.Write(
                "Starting Page init",
                "TraceCheck");
//Init page

System.Diagnostics.Trace.Write(
                "End Page init",
                "TraceCheck");

System.Diagnostics.Trace.Write(
                "Starting Data Fetch",
                "TraceCheck");
//Get Data

System.Diagnostics.Trace.Write(
                "End Data Fetch",
                "TraceCheck");

и т.д.

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

1 голос
/ 15 мая 2009

Дважды проверьте, что ваше приложение не работает в режиме отладки. В своем файле web.config убедитесь, что атрибут debug в system.web\compilation имеет значение false.

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

1 голос
/ 15 мая 2009

Также проверьте размер вашей страницы. Мой друг-разработчик однажды загрузил всю таблицу в viewstate. Страница 12 мегабайт проскальзывает при разработке на локальном компьютере, но сразу становится заметной при работе.

0 голосов
/ 15 мая 2009

В зависимости от версии вашей Visual Studio, Team Developer имеет мастер производительности, который вы, возможно, захотите изучить.

Также, если вы используете IE 8, у него есть Профилировщик, который позволит вам увидеть, сколько времени сайт загружает в самом браузере. Первое, что нужно определить, это время на стороне клиента или на стороне сервера.

Если клиентская сторона, начните смотреть, какой у вас javascript, и оптимизируйте / избавьтесь от него.

Если серверная часть, вам нужно посмотреть на все счетчики производительности (perfmon). Например, у нас было приложение, которое сканировалось на производственных серверах из-за огромного количества JIT.

Вам также нужно посмотреть на связь между сетью и сервером базы данных. Сколько времени занимают запросы? Коробки разбивают дисководы? и т.д.

0 голосов
/ 15 мая 2009

Вы используете тот же SQL Server, что и в ваших тестах, или другой?

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

Кроме того, каковы характеристики вашей коробки разработки? То же самое?

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