Asp оптимизация конфигурации iis


Содержание

Вопрос по sitecore &#8211 Оптимизация производительности Sitecore — конфигурации Sitecore, конфигурации IIS

Мы планируем развернуть нашу систему на производственном сервере. Я заинтересован в том, чтобы узнать больше об оптимизации производительности сайта.

Какие оптимизации рекомендуются для Sitecore? (Кеширование, другие настройки в веб-конфиге)Какие оптимизации мы можем сделать в IIS?

Не удалось найти хорошую статью на эти темы. Ценю любую помощь :).

Вы разработали свои компоненты так, чтобы в первую очередь их можно было кэшировать наиболее эффективным способом? Убедитесь, что вы правильно настроили кеширование:

Вы проводили симуляцию нагрузочного тестирования на своем сайте? Есть куча инструментов, посмотрите наJMeter а такжеLoadUI симулировать трафик. Вы также можете пересмотреть код C #, чтобы исключить узкие места.

Я обнаружил, что в 90% случаев многие проблемы с производительностью связаны с визуализацией внешнего интерфейса. Убедитесь, что ваша разметка легкая, насколько это возможно, ваши JS и CSS минимизированы, а код оптимизирован.

Используйте доступные инструменты, чтобы увидеть, где находятся ваши узкие места:

Редактировать настраиваемый раздел конфигурации в IIS

8 Victor [2011-04-22 00:56:00]

Я работаю над большим проектом ASP.NET(мы используем ASP.NET 3.5), который состоит из 5 разных WebSites и некоторых общих сборок. Недавно я добавил пользовательский раздел в файлы web.config для каждого сайта. Когда я развертываю все эти приложения, каждый сайт развертывается отдельно в одном и том же пуле приложений. Есть ли способ сделать этот раздел доступным для редактирования в IIS на уровне сайта, так же, как вы можете редактировать раздел ConnectionString для каждого сайта?

Разделы, которые я добавил, выглядят следующим образом:

Мы используем IIS 7.0, 2008 RC 2.

asp.net iis-7 asp.net-3.5

1 ответ

20 Решение Kev [2011-04-22 03:47:00]

Да, есть способ сделать это, расширив схему конфигурации IIS.

Создайте файл с именем RegistriesSchema.xml и скопируйте и вставьте следующий XML:

Возьмите копию инструмента под названием IisSchema.exe отсюда:

Разархивируйте и убедитесь, что оба файла exe и xml находятся в одной папке.

В командной строке администратора (т.е. откройте cmd.exe с помощью «Запуск от имени администратора» ):

Это будет делать две вещи:

    выводит файл схемы в %systemroot%\system32\inetsrv\config\schema

добавляет следующий XML к applicationHost.config :

4. Запустите диспетчер IIS и откройте настройки функции для своего веб-сайта и откройте редактор конфигурации:

5. Выберите раскрывающийся список в разделе:

Если все хорошо, вы должны увидеть «RegistersCustomSettings», выберите этот элемент.

6. Теперь вы можете редактировать эти настройки, и они будут добавлены в ваш сайт web.config файл:

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

Что делать с ?:

Вам все равно нужно добавить configSection/sectionGroup xml в ваш файл web.config для каждого сайта, или вы можете добавить его в корневой файл machine.config для любой версии ASP.NET, которую вы используете, то есть:

Для .NET Framework 2.0 (который также относится к .NET3.0 и 3.5):

Для .NET Framework 4.0:

Если вы поместите свою сборку configSection/sectionGroup в свои файлы machine.config , тогда вам не нужно объявлять ее на каждом сайте web.config . Если довольно много сайтов будут использовать эту сборку, тогда это может быть хорошим временем ожидания.

Update:

Кажется, что в редакторе конфигурации IIS7.5 есть ошибка или ограничение. Похоже, что если у вас есть собственные объявления configSections или на вашем сайте web.config , это нарушит редактор конфигурации IIS7.5. Я пытаюсь разобраться в этом:

Обновление 2:

Я думаю, что документы MS на этом немного фиктивные, особенно если ваш настраиваемый раздел конфигурации должен быть потребляемым ASP.NET и редактироваться в редакторе конфигурации диспетчера IIS. Кажется, что трюк заключается в объявлении схемы в файле RegistriesSchema.xml следующим образом:

Кроме того, и, что важно, удалите ссылку раздела из applicationHost.config :

Это не требуется.

Кроме того, вам действительно не нужно использовать инструмент IisSchema.exe , просто возьмите копию NotePad2 (это 64-битный редактор, вам нужно это, чтобы что-либо изменить в inetsrv\config ) и создать файл RegistriesSchema.xml напрямую в inetsrv\config\schema .

Подробнее о расширении схемы IIS7 вы можете узнать здесь:

Вы можете сослаться на существующие файлы схемы, чтобы узнать больше о том, как создать эти параметры. Их можно найти в:

Предостережение. Пример выше был протестирован на IIS7.5 x64 RTM в Windows 7 x64 Ultimate. Вы отмечаете, что у вас работает кандидат на выпуск, поэтому ваш пробег может измениться из-за этого.

Оптимизация IIS для Файловых баз 1С

Дано:
4 Бухгалтера
1 сервер IIS 7, Windows 7 максимальная.
24Гб оперативы
i5 4660
Гигабитная сеть
Работают локально
Файловые базы, опубликованные на IIS: 4 БП 3.0, 2 ЗУП 3.1.
1С 8.3.11.2924 х86
Каждый бухгалтер одновременно открывает все 6 баз.


Проводил нагрузочное тестирование: IIS падает после того, как открыто одновременно 4 базы БП и одна База ЗУП. В этот момент процесс w3wp.exe(IISа) занимает 3.8Гб оперативной памяти, после чего аварийно завершает процесс и все вылетают.

Вопрос: подскажите, в чем может быть дело: нехватка адресной памяти на процесс, ограничения IIS или как это ещё можно объяснить. Может кто сталкивался? что можете посоветовать?
Я думаю установить 1С х64 и попробовать ещё раз, так как в х86 ограничение в 4гб на один процесс, а в х64 2ТБ или же придется выделять ещё одну машину под другой веб сервер.

Подскажите, чтобы вы сделали?

(1) а приложение 1С х86 дак не влияет, да?

Ставь 64-битную 1Ску

Нагрузочное тестирование на файловых ИБ под ИИС — это пять!

А почему тогда не апач? И почему не терминальный сервер — память позволяет

Asp оптимизация конфигурации iis

Здравствуйте подскажите правильную настройку IIS 7> под управлением Windows 7, чтобы работало корректно.

В общем сервер работает на Windows 7, также на нём установлен IIS, далее сервер служит чисто для раздачи файлов по http, в общем уже многое перепробовал, по умолчанию если ставить в пуле 1 процесс, то через час или даже ранее отклик пропадает от сайта и вообще от сервера, далее если даже ставить 5 или 10, через часик тоже пропадает, помогает решение в 240 процессов, далее минимальные значение на проверку отклика на приложение, но всё же нормально, но увы в 240 процессов — это как то бесит)) а ещё озу жрёт по не хочу, озу общее на сервере 8гб и файл подкачки 15гб вроде, вот как то так. В общем забивает по максимум, но работает не на максимум. Хочется оптимизировать или правильно настроить, чтобы было например пусть 10 процессов и они смогли обработать свыше 5000 запросов например.

Также есть ли отличия IIS из под Windows 7 и в Windows Server? Ответа по пулу и зависание на отклик не могу негде найти, вот по этому и пишу, помогите спецы, те кто долго и держит сервера на IIS под большие задачи.

Объясняю сервер служит как хранилище, то есть на сервер много хардов и файлов, он тупо раздаёт по http на сайте и всё, ну и + защита от того, чтобы не крали ссылку, я сам прикрутил там уже модуль один.

Почему не серверная ось стоит, ну изначально ставил серверную, оказалось с матерью промахнулся не все драйвера сели, далее + антивируса на серверную ось не было, + другой софт работает под простой виндой, то есть в итоге простую поставил, так как на сервере не только раздача по http, но и ещё другие функции идут. Но мы не об этом, в общем помогите по IIS, заранее спасибо.

  • Изменен тип Elina Lebedeva Moderator 16 января 2015 г. 11:35 Тема переведена в разряд обсуждений по причине отсутствия активности

Все ответы

Насчет отличий — в принципе нет, если только It appears there is no difference, other than the maximum 10 clients EULA restriction.

Насчет отличий — в принципе нет, если только It appears there is no difference, other than the maximum 10 clients EULA restriction.

в настройка пула (дополнительные параметры), значение длинна очереди поставьте максимальное, а таймаут простоя надо установить на 0 или 24 часа (задается в минутах).

ну как бы так и стоит, а таймаут тоже стоит на 24 часа, чтобы процесс на ребут шёл.

не помогает, помогает решение в 240 процессов от одного пула! Ну как то же люди работают на 1 пуле или же на 2-х, то есть если 2, то пока 1 идёт на перезагрузку, то второй принимает, или же есть ещё такое понятие как перекрытие процесса, то есть запускается новый, а старый висит и завершается, то есть уже не принимает запросы.

Блин помогите мне точно настроить, вообще кто то пробовал под раздачу http юзать?

Кстати позже и скрин выставлю настроек, но прикол в том, то что я настройки уже как мог менял, если ставить мало процессов, например 10, то через час уже ответа нет. То есть например нажимаем на скачать или же открываем сайт, браузер думает, то есть процесс не отвечает, хотя в настройках насчёт того, когда процесс не отвечает, тоже стоит(((

Илон Маск рекомендует:  Как изменить стиль чисел в списке

По описанию, либо ваше приложение плохо параллелится, либо работает с ошибками. Посмотрите логи, проследите за ресурсами, посмотрите количество подключений. Возможно, после какого-то момента рабочий процесс перестает обрабатывать запросы или начинает делать это очень медленно. Вы увеличиваете количество рабочих процессов и это позволяет вам продержаться сутки до рестарта первого рабочего процесса и далее по кругу (по цифрам так и получается). Скорей всего это не нормальное поведение и в логах или по косвенным признакам можно будет сказать о причине.

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

Как временное решение можно выставить рестарт пула каждый час.

А ошибки в логах смотрели? Может не в настройках дело.

По описанию, либо ваше приложение плохо параллелится, либо работает с ошибками. Посмотрите логи, проследите за ресурсами, посмотрите количество подключений. Возможно, после какого-то момента рабочий процесс перестает обрабатывать запросы или начинает делать это очень медленно. Вы увеличиваете количество рабочих процессов и это позволяет вам продержаться сутки до рестарта первого рабочего процесса и далее по кругу (по цифрам так и получается). Скорей всего это не нормальное поведение и в логах или по косвенным признакам можно будет сказать о причине.

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

Как временное решение можно выставить рестарт пула каждый час.

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

А насчёт того, что там и как работает, да там тупо файловый архив, то есть по http передаёт прямые ссылки на скачивание, + поставил примочку на то, чтобы не крысили ссылки, но она не как не влияет на это, даже без неё так.

То есть коротко сервер тупо раздаёт файлы по http и всё, там нет не пхп файлов ни скриптов!

Я тоже думаю, то что куча процессов на это не нормально(((

Кстати там есть ещё настройка по ограничение памяти в КБ, там 2 графы, виртуальная память и память просто, чем они отличаются и виртуальная должна стоять больше? + ещё это ограничение на 1 процесс или на весь пул?

Если у вас 64 битная ОС, то виртуальную память лучше не трогать. В таких ОС процесс может запрашивать (но не занимать) сразу большие объемы и это никак не сказывается на производительности. Просто память (Commit size) это сколько фактически занял процесс. Ограничение на один процесс.

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

Для простой раздачи по http подойдут даже настройки по умолчанию, маловероятно что проблема из-за них. Еще как вариант, можно создать новый сайт и пул для него, выключить управляемый код и посмотреть что будет в данном случае.

Если у вас 64 битная ОС, то виртуальную память лучше не трогать. В таких ОС процесс может запрашивать (но не занимать) сразу большие объемы и это никак не сказывается на производительности. Просто память (Commit size) это сколько фактически занял процесс. Ограничение на один процесс.

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

Для простой раздачи по http подойдут даже настройки по умолчанию, маловероятно что проблема из-за них. Еще как вариант, можно создать новый сайт и пул для него, выключить управляемый код и посмотреть что будет в данном случае.

Да ОС 64 битная, наблюдал пару часиков при условии, что есть нагрузка, да я замечал то что память не так много кушает и доже задавался вопросом когда он достигнет пиковой отметки)) Но я видел ранее лишь перезапуск пулов от того или иного действия!

Сервер удалённый и локальный своего рода можно сказать, как туда попаду так и логи возьму, он можно сказать в другой стране стоит)) Далее насчёт памяти, ну когда я выставил ограничение в память сервер куда больше зажил, а то есть ограничивало, ранее озу забивал по максимум, что не давало стабильно работать на сервере, сейчас ну когда я наблюдал через день, была картину в положительную сторону, хотя если как Вы сказали, то что ограничение на 1 процессор, то тогда правило должно было превысить в 240 раз))) По этому я и спросил, походу на весь пул он ограничивает, хотя вот сегодня попаду на сервер ещё раз посмотрю, может уже озу забило))) И Вы тут правы.

Насчёт процесс монитора, а что именно смотреть то там и куда копать если что?

Далее насчёт простой раздачи http пойдёт нормальный и по умолчанию настройки, увы не так, это опробовано было сразу с первого дня, по этому и менял и трогал настройки)) а изначально не было фильтра, а стоит на сервере в придачу Helicon Ape http://www.helicontech.com/ape/ работает как защита от кражи ссылок, больше уверен, его вырублю тоже самое будет, так как изначально вообще без него работал, то есть без защиты первые дни работал и в первые дни это уже замечал.

Я понял в общем можно попробовать создать новый пул по стандартным настройкам и применить к существующим сайтам просто напросто, и далее посмотреть верно?


Расширенные возможности управления IIS 7.0 с помощью IIS Administration Pack

Для того, чтобы воспользоваться расширенными возможностями администрирования IIS 7.0, необходимо установить Administration Pack.

В состав Administration Pack входит набор модулей, расширяющих функциональность оболочки Internet Information Services Manager:

  • Configuration Editor – редактор конфигурации веб-приложения
  • .NET Authorization Rules – модуль управления правилами авторизации для приложения
  • .NET Error Pages – инструмент конфигурирования страниц, отображаемых в случае возникновения ошибок
  • FastCGI Settings – редактор конфигурации обработчиков CGI приложений, таких как PHP
  • Request Filtering – модуль фильтрации запросов к серверу
  • IIS Reports – инструмент создания графических отчетов по логам сервера

Configuration Editor

Модуль Configuration Manager предоставляет собой графический инструмент для редактирования файлов конфигурации веб-приложений, развернутых на сервере IIS 7.0. С помощью этого инструмента можно изменить любые настройки в файле конфигурации в обход всех остальных графических инструментов, предлагаемых консолью управления IIS Manager.

Сам редактор представляет собой таблицу со списком свойств (атрибутов в XML файле конфигурации) в виде таблицы. Для свойств присутствует валидация на основании типа значения, поэтому можно не бояться случайно ввести текст там, где ожидается число.

Что очень удобно, внутри редактора конфигурации есть список всех возможных параметров конфигурации.

Важной возможностью Configuration Editor является возможность заблокировать часть секций или атрибутов конфигурации приложения для изменений – это может быть удобно при делегировании полномочий по управлению сайтом.

Что еще более удобно, инструмент позволяет экспортировать C#, JavaScript код или набор инструкций командной строки для автоматизации применения настроек блокировки на других серверах.

.NET Authorization Rules и .NET Error Pages

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

Модуль авторизации предлагает возможные варианты правил для разрешения или запрета доступа.

А модуль конфигурирования «ошибочных» страниц позволяет связать адрес страницы с HTTP кодом ошибки.

FastCGI Settings

Инструмент предназначен для конфигурирования приложений, которые в свою очередь выступают обработчиками CGI приложений, выполняемых на сервере. На уровне конфигурации всего сервера доступна соответствующая иконка в IIS Manager.

С помощью FastCGI Settings можно задать базовые параметры выполнения обработчика CGI скриптов, а также задать некоторые значения переменным окружения. При этом для настроек отображаются комментарии с описанием того, на что влияет та или иная настройка.

Request Filtering

Модуль Request Filtering позволяет гибко настроить исключения для обрабатываемых запросов.

Так, например, можно исключить обработку к нежелательным типам файлов, скрыть некоторые директории приложения, которые не должны быть доступны извне, запретить или разрешить использование разных типов HTTP запросов и т.п.

Помимо этого можно настроить общие ограничения на длину запроса и размер возвращаемого ответа.

IIS Reports

Инструмент IIS Reports позволяет оперативно получать удобную статистику по работе веб-сервера.

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

Инструмент поддерживает графическое представление в виде гистограммы и круговой диаграммы, а также экспорт отчетов в HTML.

Все вместе эти инструменты позволяют упростить управление веб-сервером IIS.

WCF — оптимизация конфигурации и IIS

У меня есть служба WCF RESTful, которая размещена в IIS, которая поражена несколькими нашими приложениями. В большинстве случаев службы WCF работают нормально, но иногда требуется много времени, чтобы получить ответ от службы.

Я видел, были ли хорошие учебные пособия или ресурсы, чтобы следить за тем, как лучше настроить службы WCF RESTful как веб-масштаб либо через web.config, либо из IIS, либо из нашего выделенного пула приложений.

Мы воспользовались нашими услугами и использовали профилировщик NHibernate для поиска и оптимизации любых проблемных запросов, а также у нас также есть memcached-настройка, которая также поможет в производительности. Проблема заключается в том, что многие приложения потребляют услугу за короткий промежуток времени или когда служба простаивает в течение длительного периода времени.

Илон Маск рекомендует:  Что такое код swf_scale

Спасибо за любую помощь.

Не уверен, что это применимо к вашему сценарию, но я прочитал ниже упомянутое сообщение в блоге MSDN пару дней назад. Это о проблеме в Net IOCP Threadpool, которая вызывает длительное время отклика для WCF, когда много запросов выдаются за короткое время. Может быть, это может вам помочь?

Нет общих рекомендаций по проблеме большой нагрузки, но одна из возможных оптимизаций будет использовать асинхронные операции на стороне сервера: Масштабировать приложение WCF лучше с асинхронным Программирование. Это о сохранении ресурсов пула потоков при вызове базы данных.

Расширенные возможности управления IIS 7.0 с помощью IIS Administration Pack

Для того, чтобы воспользоваться расширенными возможностями администрирования IIS 7.0, необходимо установить Administration Pack.

В состав Administration Pack входит набор модулей, расширяющих функциональность оболочки Internet Information Services Manager:

  • Configuration Editor – редактор конфигурации веб-приложения
  • .NET Authorization Rules – модуль управления правилами авторизации для приложения
  • .NET Error Pages – инструмент конфигурирования страниц, отображаемых в случае возникновения ошибок
  • FastCGI Settings – редактор конфигурации обработчиков CGI приложений, таких как PHP
  • Request Filtering – модуль фильтрации запросов к серверу
  • IIS Reports – инструмент создания графических отчетов по логам сервера

Configuration Editor

Модуль Configuration Manager предоставляет собой графический инструмент для редактирования файлов конфигурации веб-приложений, развернутых на сервере IIS 7.0. С помощью этого инструмента можно изменить любые настройки в файле конфигурации в обход всех остальных графических инструментов, предлагаемых консолью управления IIS Manager.

Сам редактор представляет собой таблицу со списком свойств (атрибутов в XML файле конфигурации) в виде таблицы. Для свойств присутствует валидация на основании типа значения, поэтому можно не бояться случайно ввести текст там, где ожидается число.

Что очень удобно, внутри редактора конфигурации есть список всех возможных параметров конфигурации.

Важной возможностью Configuration Editor является возможность заблокировать часть секций или атрибутов конфигурации приложения для изменений – это может быть удобно при делегировании полномочий по управлению сайтом.

Что еще более удобно, инструмент позволяет экспортировать C#, JavaScript код или набор инструкций командной строки для автоматизации применения настроек блокировки на других серверах.

.NET Authorization Rules и .NET Error Pages

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

Модуль авторизации предлагает возможные варианты правил для разрешения или запрета доступа.

А модуль конфигурирования «ошибочных» страниц позволяет связать адрес страницы с HTTP кодом ошибки.


FastCGI Settings

Инструмент предназначен для конфигурирования приложений, которые в свою очередь выступают обработчиками CGI приложений, выполняемых на сервере. На уровне конфигурации всего сервера доступна соответствующая иконка в IIS Manager.

С помощью FastCGI Settings можно задать базовые параметры выполнения обработчика CGI скриптов, а также задать некоторые значения переменным окружения. При этом для настроек отображаются комментарии с описанием того, на что влияет та или иная настройка.

Request Filtering

Модуль Request Filtering позволяет гибко настроить исключения для обрабатываемых запросов.

Так, например, можно исключить обработку к нежелательным типам файлов, скрыть некоторые директории приложения, которые не должны быть доступны извне, запретить или разрешить использование разных типов HTTP запросов и т.п.

Помимо этого можно настроить общие ограничения на длину запроса и размер возвращаемого ответа.

IIS Reports

Инструмент IIS Reports позволяет оперативно получать удобную статистику по работе веб-сервера.

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

Инструмент поддерживает графическое представление в виде гистограммы и круговой диаграммы, а также экспорт отчетов в HTML.

Все вместе эти инструменты позволяют упростить управление веб-сервером IIS.

Вопрос по sitecore &#8211 Оптимизация производительности Sitecore — конфигурации Sitecore, конфигурации IIS

Мы планируем развернуть нашу систему на производственном сервере. Я заинтересован в том, чтобы узнать больше об оптимизации производительности сайта.

Какие оптимизации рекомендуются для Sitecore? (Кеширование, другие настройки в веб-конфиге)Какие оптимизации мы можем сделать в IIS?

Не удалось найти хорошую статью на эти темы. Ценю любую помощь :).

Вы разработали свои компоненты так, чтобы в первую очередь их можно было кэшировать наиболее эффективным способом? Убедитесь, что вы правильно настроили кеширование:

Вы проводили симуляцию нагрузочного тестирования на своем сайте? Есть куча инструментов, посмотрите наJMeter а такжеLoadUI симулировать трафик. Вы также можете пересмотреть код C #, чтобы исключить узкие места.

Я обнаружил, что в 90% случаев многие проблемы с производительностью связаны с визуализацией внешнего интерфейса. Убедитесь, что ваша разметка легкая, насколько это возможно, ваши JS и CSS минимизированы, а код оптимизирован.

Используйте доступные инструменты, чтобы увидеть, где находятся ваши узкие места:

Что вы можете сделать для ускорения работы веб-сайтов IIS 7?

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

Какие еще параметры конфигурации вы можете изменить для повышения производительности? есть ли у вас «контрольный список производительности» вещей, которые нужно установить, когда вы получаете новый сервер?

Я спрашиваю об IIS 7 или более поздней версии (потому что все мои текущие серверы IIS7)

4 ответа

IIS7 + на самом деле довольно чертовски быстро. Существует не так много возможностей для ускорения IIS; в целом вы оптимизируете HTML

Советы Jesper выше — отличные рекомендации для ускорения статических веб-страниц.

Если вы используете приложение ASP.NET, вы также можете сделать это, если на вашем веб-сайте возникают проблемы с производительностью из-за загрузки:

  • Следите за своим сервером. ASP.NET публикует множество счетчиков, которые можно отслеживать в PerfMon.exe. Счетчик очереди глобального запроса покажет вам, будут ли поставлены какие-либо запросы. Это число всегда должно быть 0.
  • Оптимизировать любые вызовы внешним ресурсам, таким как базы данных и файловые системы. Длительные запросы связывают потоки и предотвращают доставку входящих запросов.
  • Если вы давно используете вызовы внешних ресурсов, подумайте о том, чтобы сделать их асинхронными. Это передает запрос в отдельный пул потоков и возвращает исходный поток в пул для обслуживания новых запросов.
  • Увеличьте размер пула потоков для более старых версий .NET. Этот параметр можно найти в файле machine.config
  • Настройте параметр веб-сада в пуле приложений IIS для использования нескольких рабочих процессов (параметр «Максимальные рабочие процессы» в расширенных настройках IIS7). Играйте с различными настройками, чтобы увидеть, что лучше всего подходит для вашей среды. Многоядерные машины смогут обрабатывать несколько рабочих процессов лучше.
  • На виртуальной машине не назначайте слишком много ядер на сервер, так как это может вызвать проблемы с размещением на вашем хосте.
  • Если вы все это пробовали и по-прежнему видите проблемы из-за нагрузки, подумайте о кластеризации вашего сервера. В Windows Server встроена балансировка сетевой нагрузки, которая позволяет настраивать небольшую веб-ферму без необходимости использования дорогостоящего балансировщика нагрузки. IIS7 также включает в себя структуру веб-фермы, которая обеспечивает то же самое, используя маршрутизацию запросов приложений (ARR). Он также обрабатывает подготовку сервера.

Быстрый веб-поиск по любому из этих вопросов вернет много хорошей информации.

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

Какая часть цепочки производительности самая слабая?

Что вы можете сделать, чтобы получить гранулированную видимость доступным способом?

Джеспер Мортенсен абсолютно прав Две книги Стива являются превосходным чтением и учитывают недавнее ускорение скорости от 5,5 до 1,8 секунд ( webpagetest ) на сайте, который мы поддерживаем. Стабилизация всей системы, основанная на журналах, помогла нам обеспечить стабильную доставку по трассам и увеличить ее на пике (более 50% этого было на уровне ОС). Ничто из этого не могло быть сделано в течение 2-х дневных временных рамок без мониторинга на каждом уровне.

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

Мы внедряем модуль ARR в IIS7, поэтому мы создаем webFarm, ARR может кэшировать ваш запрос на диске и увеличивать производительность для нас, что имеет большое значение.

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

js.yourdomain.com img.yourdomain.com css.yourdomain.com

и т. д. Browser le ie, и я думаю, что другие загружают синхронные 3 соединения поддоменом.

Поддержка служб IIS во время разработки в Visual Studio для ASP.NET Core Development-time IIS support in Visual Studio for ASP.NET Core

В этой статье описаны поддерживаемые в Visual Studio возможности для отладки приложений ASP.NET Core, выполняющихся в службах IIS в Windows Server. This article describes Visual Studio support for debugging ASP.NET Core apps running with IIS on Windows Server. Также здесь приведены пошаговые инструкции по включению этого сценария и настройке проекта. This topic walks through enabling this scenario and setting up a project.

Предварительные требования Prerequisites

  • Visual Studio для Windows Visual Studio for Windows
  • Рабочая нагрузка ASP.NET и веб-разработкаASP.NET and web development workload
  • Рабочая нагрузка Кроссплатформенная разработка .NET Core.NET Core cross-platform development workload

  • Сертификат безопасности X.509 (для поддержки HTTPS) X.509 security certificate (for HTTPS support)

Активация IIS Enable IIS

  1. В Windows последовательно выберите Панель управления >Программы >Программы и компоненты >Включение или отключение компонентов Windows (в левой части экрана). In Windows, navigate to Control Panel >Programs >Programs and Features >Turn Windows features on or off (left side of the screen).
  2. Установите флажок Службы IIS. Select the Internet Information Services check box. Нажмите кнопку ОК. Select OK.

Для установки служб IIS, возможно, потребуется перезагрузить компьютер. The IIS installation may require a system restart.

Илон Маск рекомендует:  Шаблон сайта презентаци HTML, CSS, JavaScript

Настройка IIS Configure IIS

В службах IIS нужно настроить веб-сайт со следующими характеристиками: IIS must have a website configured with the following:

  • Имя узла. Обычно используется Веб-сайт по умолчанию со значением localhost , заданным параметру Имя узла. Host name – Typically, the Default Web Site is used with a Host name of localhost . Но можно также задать любой допустимый веб-сайт IIS с уникальным именем узла. However, any valid IIS website with a unique host name works.
  • Привязка сайтаSite Binding
    • Для приложений, которым требуется протокол HTTPS, создайте привязку к порту 443 с помощью сертификата. For apps that require HTTPS, create a binding to port 443 with a certificate. Обычно используется сертификат разработки IIS Express, но подойдет и любой другой действительный сертификат. Typically, the IIS Express Development Certificate is used, but any valid certificate works.
    • Для приложений, использующих протокол HTTP, подтвердите привязку к порту 80 или создайте привязку к порту 80 для нового сайта. For apps that use HTTP, confirm the existence of a binding to post 80 or create a binding to port 80 for a new site.
    • Используйте одну привязку либо для HTTP, либо для HTTPS. Use a single binding for either HTTP or HTTPS. Одновременная привязка к портам HTTP и HTTPS не поддерживается.Binding to both HTTP and HTTPS ports simultaneously isn’t supported.

Включение поддержки служб IIS в Visual Studio во время разработки Enable development-time IIS support in Visual Studio

Запустите установщик Visual Studio. Launch the Visual Studio installer.

Выберите Изменить в установщике программы Visual Studio, которую планируется использовать для поддержки IIS во время разработки. Select Modify for the Visual Studio installation that you plan to use for IIS development-time support.

Для рабочей нагрузки ASP.NET и разработка веб-приложений найдите и установите компонент Поддержка времени разработки в IIS. For the ASP.NET and web development workload, locate and install the Development time IIS support component.

Компонент находится в разделе Дополнительно под пунктом Поддержка времени разработки в IIS на панели Сведения об установке справа от рабочих нагрузок. The component is listed in the Optional section under Development time IIS support in the Installation details panel to the right of the workloads. Этот компонент выполнит установку модуля ASP.NET Core, который является собственным модулем IIS, необходимым для запуска приложений ASP.NET Core со службами IIS. The component installs the ASP.NET Core Module, which is a native IIS module required to run ASP.NET Core apps with IIS.

Настройка проекта Configure the project

Перенаправление HTTPS HTTPS redirection

Если новому проекту требуется протокол HTTPS, установите флажок Configure for HTTPS (Настроить для HTTPS) в окне Создать веб-приложение ASP.NET Core. For a new project that requires HTTPS, select the check box to Configure for HTTPS in the Create a new ASP.NET Core Web Application window. Установка флажка добавляет ПО промежуточного слоя перенаправления HTTPS и HSTS в приложение при его создании. Selecting the check box adds HTTPS Redirection and HSTS Middleware to the app when it’s created.

Если существующему проекту требуется протокол HTTPS, используйте ПО промежуточного слоя перенаправления HTTPS и HSTS в Startup.Configure . For an existing project that requires HTTPS, use HTTPS Redirection and HSTS Middleware in Startup.Configure . Дополнительные сведения можно найти по адресу: Принудительное применение HTTPS в ASP.NET Core. For more information, see Принудительное применение HTTPS в ASP.NET Core.

Для проекта, который использует протокол HTTP, поддержку ПО промежуточного слоя перенаправления HTTPS и HSTS задавать не нужно. For a project that uses HTTP, HTTPS Redirection and HSTS Middleware aren’t added to the app. Настройка приложения не требуется. No app configuration is required.

Профиль запуска служб IIS IIS launch profile

Создайте новый профиль запуска, чтобы добавить поддержку IIS во время разработки. Create a new launch profile to add development-time IIS support:

В обозревателе решений щелкните проект правой кнопкой мыши. Right-click the project in Solution Explorer. Выберите пункт Свойства. Select Properties. Откройте вкладку Отладка. Open the Debug tab.

В разделе Профиль нажмите кнопку Новый. For Profile, select the New button. Во всплывающем окне присвойте новому профилю имя IIS. Name the profile «IIS» in the popup window. Нажмите кнопку ОК, чтобы создать проект. Select OK to create the profile.

В поле Запуск выберите из списка значение IIS. For the Launch setting, select IIS from the list.

Установите флажок Запуск браузера и укажите URL-адрес конечной точки. Select the check box for Launch browser and provide the endpoint URL.

Если приложению требуется протокол HTTPS, используйте конечную точку HTTPS ( https:// ). When the app requires HTTPS, use an HTTPS endpoint ( https:// ). Для протокола HTTP используйте конечную точку HTTP ( http:// ). For HTTP, use an HTTP ( http:// ) endpoint.

Укажите то же имя узла и тот же порт, как в выполненной ранее настройке IIS. Обычно это localhost . Provide the same host name and port as the IIS configuration specified earlier uses, typically localhost .

Укажите имя приложения в конце URL-адреса. Provide the name of the app at the end of the URL.

Например https://localhost/WebApplication1 (HTTPS) или http://localhost/WebApplication1 (HTTP) являются действительными URL-адресами конечной точки. For example, https://localhost/WebApplication1 (HTTPS) or http://localhost/WebApplication1 (HTTP) are valid endpoint URLs.

В разделе Переменные среды нажмите кнопку Добавить. In the Environment variables section, select the Add button. Для переменной среды задайте имя ASPNETCORE_ENVIRONMENT и значение Development . Provide an environment variable with a Name of ASPNETCORE_ENVIRONMENT and a Value of Development .

В области Параметры веб-сервера в поле URL-адрес приложения задайте значение, соответствующее URL-адресу конечной точки в поле Запуск браузера. In the Web Server Settings area, set the App URL to the same value used for the Launch browser endpoint URL.

Сохраните профиль. Save the profile.

В обозревателе решений щелкните проект правой кнопкой мыши. Right-click the project in Solution Explorer. Выберите пункт Свойства. Select Properties. Откройте вкладку Отладка. Open the Debug tab.

В разделе Профиль нажмите кнопку Новый. For Profile, select the New button. Во всплывающем окне присвойте новому профилю имя IIS. Name the profile «IIS» in the popup window. Нажмите кнопку ОК, чтобы создать проект. Select OK to create the profile.

В поле Запуск выберите из списка значение IIS. For the Launch setting, select IIS from the list.

Установите флажок Запуск браузера и укажите URL-адрес конечной точки. Select the check box for Launch browser and provide the endpoint URL.

Если приложению требуется протокол HTTPS, используйте конечную точку HTTPS ( https:// ). When the app requires HTTPS, use an HTTPS endpoint ( https:// ). Для протокола HTTP используйте конечную точку HTTP ( http:// ). For HTTP, use an HTTP ( http:// ) endpoint.

Укажите то же имя узла и тот же порт, как в выполненной ранее настройке IIS. Обычно это localhost . Provide the same host name and port as the IIS configuration specified earlier uses, typically localhost .

Укажите имя приложения в конце URL-адреса. Provide the name of the app at the end of the URL.

Например https://localhost/WebApplication1 (HTTPS) или http://localhost/WebApplication1 (HTTP) являются действительными URL-адресами конечной точки. For example, https://localhost/WebApplication1 (HTTPS) or http://localhost/WebApplication1 (HTTP) are valid endpoint URLs.

В разделе Переменные среды нажмите кнопку Добавить. In the Environment variables section, select the Add button. Для переменной среды задайте имя ASPNETCORE_ENVIRONMENT и значение Development . Provide an environment variable with a Name of ASPNETCORE_ENVIRONMENT and a Value of Development .

В области Параметры веб-сервера в поле URL-адрес приложения задайте значение, соответствующее URL-адресу конечной точки в поле Запуск браузера. In the Web Server Settings area, set the App URL to the same value used for the Launch browser endpoint URL.

Сохраните профиль. Save the profile.

Если Visual Studio не используется, можно вручную добавить профиль запуска в файл launchSettings.json в папке Properties. When not using Visual Studio, manually add a launch profile to the launchSettings.json file in the Properties folder. В следующем примере настраивается профиль для использования протокола HTTPS. The following example configures the profile to use the HTTPS protocol:

Убедитесь, что конечные точки applicationUrl и launchUrl совпадают и используют тот же протокол (HTTP или HTTPS), что и конфигурация привязки IIS. Confirm that the applicationUrl and launchUrl endpoints match and use the same protocol as the IIS binding configuration, either HTTP or HTTPS.

Запуск проекта Run the project

Запустите Visual Studio от имени администратора. Run Visual Studio as an administrator:

  • Убедитесь, что для раскрывающегося списка с конфигурацией сборки построения выбрано значение Отладка. Confirm that the build configuration drop-down list is set to Debug.
  • Настройте кнопку Начать отладку на профиль IIS и нажмите ее для запуска приложения. Set the Start Debugging button to the IIS profile and select the button to start the app.

Если вы вошли в Visual Studio без прав администратора, возможно, потребуется перезапуск. Visual Studio may prompt a restart if not running as an administrator. Перезапустите Visual Studio при появлении соответствующего запроса. If prompted, restart Visual Studio.

Если используется сертификат разработки без доверия, возможно, потребуется создать исключение для этого ненадежного сертификата по запросу в браузере. If an untrusted development certificate is used, the browser may require you to create an exception for the untrusted certificate.

Отладка конфигурации сборки выпуска с использованием функции Только мой код и оптимизации компилятора приводит к ограничению возможностей. Debugging a Release build configuration with Just My Code and compiler optimizations results in a degraded experience. Например, точки останова не будут достигнуты. For example, break points aren’t hit.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL