Iis регулирование полосы пропускания


Содержание

Иллюстрированный самоучитель по настройке Windows 2000/2003

Службы Windows 2000

DNS-клиент (DNS Client) – разрешает и кэширует имена DNS (Domain Name Server). Служба DNS-клиента должна быть запущена на каждом компьютере, который будет выполнять разрешение DNS-имен. Способность разрешать имена DNS является критической для обнаружения контроллеров домена в домене Active Directory. Запуск службы DNS-клиента также критически важен для определения расположения устройств, идентифицируемых с помощью DNS-имен. При отключении данной службы Ваши компьютеры, возможно, не смогут обнаружить контроллеры домена в доменах Active Directory, также как и интернет-подключения. Компьютеры с отключенной службой клиента не смогут обнаружить устройства, идентифицируемые с помощью DNS-имен – например, веб-сервер, идентифицируемый по DNS-имени www.example.com. См. также DNS-сервер.

DNS-сервер (DNS Server) – включает разрешение DNS-имен при обращении к ним, а также при запросах обновления DNS-имен. Наличие DNS-сервера критически важно для обнаружения устройств, идентифицируемых с помощью DNS-имен, и контроллеров домена в Active Directory. Если некоторая часть пространства имен не имеет полномочного DNS-сервера, обнаружение устройств в этой части пространства имен будет невозможно. Отсутствие полномочного DNS-сервера для пространства имен DNS, используемых для разрешения доменов Active Directory, приводит к невозможности обнаружения контроллеров этого домена. См. также DNS-клиент.

Журнал событий (Event Log) – регистрирует сообщения событий, выдаваемые программами и Windows. Отчеты Журнала событий содержат информацию, которая может быть полезна для диагностирования проблем. Отчеты просматриваются в оснастке консоли ММС Просмотр событий (Event Viewer). Служба Журнала событий записывает в файлы протоколов события, отправленные приложениями, службами и операционной системой. События содержат информацию для диагностики неполадок, в дополнение к информации об ошибках, относящихся к определенному приложению, службе или компоненту. Протоколы можно просмотреть программно через API Журнала событий или через оснастку Просмотр событий консоли ММС (Microsoft Management Console). Если служба отключена, Вы не сможете отслеживать события, что уменьшит возможность быстро диагностировать системные проблемы. Кроме того, Вы не сможете отслеживать события безопасности.

Служба факсов (Fax Service) – позволяет Вам отправлять и принимать факсы. Отключение этой службы повлечет невозможность отправлять и принимать факсы на компьютере.

Служба репликации файлов (File Replication) – обеспечивает синхронизацию содержимого файловых директорий между несколькими серверами. Репликация файлов является автоматической службой в Windows 2000. Она используется для копирования и поддержки файлов одновременно на нескольких серверах, а также для реплицирования системного тома Windows 2000 SYSVOL на всех контроллерах домена. Кроме того, она может быть настроена для репликации файлов между другими адресатами, связанными с отказоустойчивой распределенной файловой системой (Distributed File System, DFS). Если эта служба отключена, репликация файлов не выполняется, и данные сервера не будут синхронизированы. Остановка службы репликации файлов на контроллере домена может серьезно ухудшить его работоспособность.

Файловый сервер для Macintosh (File Server for Macintosh) – позволяет пользователям компьютеров Макинтош (Macintosh) хранить файлы на данном Windows-сервере и иметь к ним доступ. Если эта служба отключена, клиенты Макинтош не смогут просматривать общие ресурсы файловой системы NTFS. См. также Сервер печати для Macintosh.

Служба FTP-публикаций (FTP Publishing Service) – обеспечивает соединение по протоколу FTP (file transfer protocol, протокол передачи файлов) и его администрирование через оснастку Internet Information Service (IIS). Особенностями службы являются регулирование полосы пропускания, безопасные учетные записи и гибкое протоколирование.

Gateway Services для Netware (Gateway Services for Netware) – предоставляет доступ к файловым ресурсам и принтерам в сетях Netware.

Служба IIS Admin (IIS Admin) — позволяет администрировать службы Internet Information Services (IIS). Если эта служба не запущена, Вы не сможете запустить службы Web, FTP, NNTP и SMTP или настроить IIS. См. также Веб-публикации (World Wide Web Publishing).

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

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

Служба проверки подлинности в Интернете (Internet Authentication Service, IAS) – выполняет централизованную проверку подлинности, авторизацию, аудит и учет пользователей, подключающихся к сети с использованием виртуальных частных сетей (Virtual Private Network, VPN), службы удаленного доступа (Remote Access Service, RAS) или беспроводных (802.1x Wireless) и Ethernet/Switch точек доступа. IAS включает поддержку протокола удаленной проверки подлинности пользователей RADIUS (Remote Authentication Dial-In User Service) стандарта IETF, который позволяет использовать разнородное оборудование сетевого доступа. Если эта служба остановлена или отключена, запросы проверки подлинности будут переданы дополнительному IAS-серверу. Если ни один из дополнительных IAS-серверов недоступен, пользователи не смогут подключиться.

All-Audio.pro

Статьи, Схемы, Справочники

Как определить полосу пропускания

Полосой пропускания осциллографов и осциллографических пробников называется выраженный в герцах диапазон рабочих частот. Теперь вы можете воспользоваться приведенными ниже несложными пошаговыми инструкциями для проверки полосы пропускания своего пробника с осциллографом, которым вы пользуетесь. Для измерения полосы пропускания осциллографического пробника часто используют векторный анализатор цепей VNA , который обычно дорого стоит и сложен в использовании. Кроме того, типичные пассивные пробники обладают высоким сопротивлением и рассчитаны на подключение ко входу осциллографа с входным сопротивлением 1 МОм, что делает традиционный метод измерения параметра S21, используемый векторным анализатором, сложно реализуемым в связи с тем, что эта система обладает волновым сопротивлением 50 Ом. Другой способ измерения полосы пропускания заключается в непосредственном измерении АЧХ с помощью источника синусоидального сигнала, ответвителя и измерителя мощности. Ручное выполнение этой работы очень трудоёмко, подвержено ошибкам и требует больших усилий при необходимости внесения изменений в измерительную схему.

Поиск данных по Вашему запросу:

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

Перейти к результатам поиска >>>

Tech Elements

Нужны еще сервисы? Архив Каталог тем Добавить статью. Как покупать? Полихлорвиниловые трубки легче натянуть на изолируемые предметы отвертки, пинцеты, радиодетали , если на мин поместить их в ацетон. Посыпав место пайки песком или натерев крошащимся камнем, можно паять обычными методами даже алюминий. Вход Регистрация Востановить пароль.

Видео Как это работает? Участников : 2 Гостей : 80 G o o g l e , Я ндекс , далее Рекорд человек онлайн установлен Новые объявления Продам: Генератор сигналов. Полоса пропускания Полоса пропускания — диапазон частот, в пределах которого амплитудно-частотная характеристика АЧХ акустического, радиотехнического, оптического или механического устройства достаточно равномерна для того, чтобы обеспечить передачу сигнала без существенного искажения его формы. Основные параметры полосы пропускания Основные параметры, которые характеризуют полосу пропускания частот — это ширина полосы пропускания и неравномерность АЧХ в пределах полосы.

Этот уровень приблизительно соответствует -3 дБ. Ширина полосы пропускания выражается в единицах частоты например, в Гц. Расширение полосы пропускания позволяет передать большее количество информации.

Неравномерность АЧХ выражается в децибелах. Ослабление неравномерности АЧХ в полосе улучшает воспроизведение формы передаваемого сигнала. Конкретные примеры В теории антенн полоса пропускания — диапазон частот, при которых антенна работает эффективно, обычно окрестность центральной резонансной частоты. Зависит от типа антенны, ее геометрии. На практике полоса пропускания обычно определяется по уровню КСВ коэффициента стоячей волны.

КСВ МЕТР В оптике полоса пропускания — это величина, обратная к величине уширения импульса при прохождении им по оптическому волокну расстояния в 1 км. Поскольку даже самый лучший монохроматичный лазер всё равно излучает некоторый спектр длин волн, дисперсия приводит к уширению импульсов при распространении по волокну и тем самым порождает искажения сигналов. При оценке этого пользуются термином полоса пропускания. Из определения полосы пропускания видно, что дисперсия накладывает ограничение на дальность передачи и на верхнюю частоту передаваемых сигналов.

Разное Полихлорвиниловые трубки легче натянуть на изолируемые предметы отвертки, пинцеты, радиодетали , если на мин поместить их в ацетон. Интересно Посыпав место пайки песком или натерев крошащимся камнем, можно паять обычными методами даже алюминий. Партнёры Новые объявления Продам: Генератор сигналов.

Полоса пропускания и пропускная способность

Полоса пропускания это разница между верхними и нижними частотами в непрерывном наборе частот. Как правило, измеряется в герцах. Иногда под термином подразумевается эффективно передаваемая полоса частот ЭППЧ , иногда максимальная частота пропускания, в зависимости от контекста. ЭППЧ — это промежуток частот между верхней и нижней частотами отсечки, например, в полосовом фильтре, канале связи или спектре сигнала. Для фильтра нижних частот полоса пропускания равна его верхней частоте отсечки как на картинке. Полоса пропускания в герцах является основным понятием во многих областях, в том числе электронике, теории информации, цифровой связи, радиосвязи, обработке сигналов и спектроскопии. Ключевой характеристикой является то, что пропускная способность полосы заданной ширины может нести одинаковый объем информации, независимо от того, где эта полоса расположена в частотном спектре.

12.1. Эффективная полоса пропускания

Для того, чтобы веб-сайт работал, ему необходимы два условия. Первое условие — наличие дискового пространства, в котором будут размещаться файлы сайта. Второе — полоса пропускания, которая открывает внешний трафик для просмотра и доступа к файлам. Сайт нуждается в достаточной полосе пропускания, чтобы весь трафик мог пройти, но чрезмерные характеристики могут привести к излишним денежным тратам. Многие хостеры предлагают неограниченную полосу пропускания. Но что в действительности значит их предложение? Если рассматривать только название, то неограниченная полоса пропускания означает тарифный план, при котором доступ к сайту никогда не будет ограничиваться объемом полученного трафика. На тарифных планах с ограничениями полосы пропускания обслуживание может остановиться до конца месяца при условии достижения объема трафика определённых значений. Неограниченная полоса пропускания позволит вашему проекту оставаться на связи. Но реальная неограниченная полоса пропускания невозможна физически.

Полоса пропускания

Этот диапазон частот устанавливается для каждого сигнала экспериментально в соответствии с требованиями качества. Основные параметры, которые характеризуют полосу пропускания частот — это ширина полосы пропускания и неравномерность АЧХ в пределах полосы. Ширина полосы пропускания — полоса частот, в пределах которой неравномерность частотной характеристики не превышает заданной. Иногда полосу пропускания определяют также по фазо-частотной характеристике устройства [1].

4. Полоса пропускания монитора

Когда появляется новый проект, черты которого еще неясно вырисовываются в ближайшем будущем, не исключена возможность, что в конечном итоге может оказаться необходимым изъять из обращения старый привычный осциллограф и заменить его новым с более широкой полосой пропускания. Основным фактором, определяющим стоимость осциллографов, является их полоса пропускания; поэтому очень важно знать, какая же полоса пропускания требуется на самом деле. Те, кто определенное время работал в этой области, знают старую установку, что необходимая полоса пропускания осциллографа должна быть по крайней мере в три раза шире полосы частот сигнала, подлежащего измерению. В заметках по применению, написанных автором этой статьи в х годах, рекомендовалось именно такое соотношение. Это было на самом деле справедливо в те добрые старые времена, когда большинство осциллографов имело гауссову частотную характеристику.

Primary Menu

Прежде всего, используя указанные в журнале Elektor значения, определим путем моделирования эффективную 3-dB-полосу пропускания при выходной мощности 35 Вт и сопротивлении нагрузки RH равном 8 Ом. Возможно, некоторым незнакомо понятие 3-dB-полоса пропускания. Разница состоит лишь в том, что 3-dB-падение напряжения соответствует падению напряжения до По данным журнала Elektor, ширина полосы частот измерялась при мощности равной 35 Вт. Для этого в выходных МОП-транзисторных каскадах требуется, чтобы амплитуда входного напряжения составляла 1 В. На рис. Частотная характеристика выходного напряжения МОП-транзисторного усилителя.


Энциклопедия по машиностроению XXL

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

IIS — Регулирование полосы пропускания

Хотите выбрать микрофон для студии звукозаписи? Вам нужен чистый и прозрачный звук? Желаете студийный микрофон , вокальный или инструментальный, качество которого превосходило бы качество именитых брендов, а цена была бы гораздо ниже? Добро пожаловать!

Оценка выбора полосы пропускания

Хотите выбрать микрофон для студии звукозаписи? Вам нужен чистый и прозрачный звук? Желаете студийный микрофон , вокальный или инструментальный, качество которого превосходило бы качество именитых брендов, а цена была бы гораздо ниже? Добро пожаловать! Вы находитесь на сайте, посвященном студийным микрофонам «Oktava». Качество этих микрофонов признано во всем мире!

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

Десять лучших способов улучшения производительности IIS 7.0

Посетителей: 11846 | Просмотров: 14496 (сегодня 2) Шрифт:

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

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

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

Скорее всего, просто переход на IIS 7.0 не выявит всех преимуществ нового веб-сервера, хотя в некоторых случаях и этого будет достаточно. Например, на узле Microsoft.com было отмечено 10-процентное улучшение эффективности использования ЦП (полный анализ доступен в блоге группы разработки Microsoft.com наgo.microsoft.com/fwlink/?Link >® (оба процесса теперь выполняются на уровне ядра), а также улучшение вертикальной масштабируемости на многопроцессорных и многоядерных машинах.

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

Экономичные веб-серверы

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

Полный набор функций веб-сервера IIS 7.0 состоит из 44 модулей, включая собственные модули IIS и ASP.NET, предоставляющие службы для интегрированного конвейера. В модулях реализованы такие функции, как проверка подлинности (модули проверки подлинности Windows и дайджест-проверки подлинности), поддержка инфраструктуры приложения (модуль FastCGI), службы приложений (модуль состояния сеанса), обеспечение безопасности (модуль фильтрации запросов) и производительности (модуль кэширования выходных данных). Однако минимальному веб-серверу, обслуживающему статические страницы, для работы требуется всего 2 модуля!

Количество дополнительные данных от неиспользуемых модулей может быть довольно значительным — например, от модуля записи запросов в журнал или от модуля трассировки неудачно завершившихся запросов. Если удалить эти модули из окружения, где они не нужны, можно получить прирост общей пропускной способности и уменьшение времени реакции сервера, что в свою очередь улучшит такие характеристики нагрузки на сервер, как время до получения первого байта (TTFB) и время до получения последнего байта (TTLB).

На рис. 1 показаны результаты простых тестов пропускной способности для HTML-файла (статическая нагрузка) и страницы «Здравствуй, мир», написанной на ASP.NET (нагрузка ASP.NET). Использовались три конфигурации веб-сервера: с полным набором функций, с предлагаемым по умолчанию набором функций для каждого типа нагрузки и с минимальным набором необходимых для каждого типа нагрузки функций. Можно заметить, что, хотя большинство необязательных функций отключены даже в полной конфигурации сервера, пропускную способность можно существенно увеличить как в случае статической нагрузки, так и при работе ASP.NET, если полностью удалить ненужные функции.

Рис. 1. Пропускная способность сервера при статической нагрузке и работе с ASP.NET в трех разных конфигурациях со 100 параллельно подключенными клиентами

Кроме того, может снизиться объем занимаемой памяти и повыситься плотность веб-узлов, особенно в случае сред совместного размещения или при использования большого количества рабочих процессов. Это происходит за счет уменьшения количества библиотек DLL, загружаемых каждым процессом, а также количества запросов на выделение памяти, происходящих при инициализации модуля и обработке запроса. На рис. 2 изображено использование памяти (в байтах исключительного использования рабочими процессами IIS) в тестах пропускной способности, о которых говорилось выше. И, хотя приведенные в этом примере изменения не так заметны, они, тем не менее, соответствуют всем ожиданиям. Дело в том, что поддержка приложений ASP.NET требует больше служебных данных, чем можно высвободить удалением модулей.

Рис. 2 Использование памяти (в байтах исключительного использования рабочими процессами IIS) сервером при статической нагрузке и работе с ASP.NET в трех разных конфигурациях со 100 параллельно подключенными клиентами

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

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

Использование экономичной операционной системы

В Windows Server ® 2008 реализовано выделение компонентов на уровне операционной системы, посредством чего можно дополнительно сократить контактную зону веб-сервера. Минимальным режимом установки Windows Server 2008 является режим «Server Core», который содержит минимальный набор основных подсистем операционной системы. Для экономичных веб-серверов на базе IIS 7.0 лучшим вариантом установки является именно Server Core.

Однако, рассматривая возможности Server Core, необходимо учитывать, какие его ограничения могут отразиться на работе вашего приложения. В Server Core отсуствует поддержка платформы Microsoft ® .NET Framework, то есть нет ASP.NET, расширений.NET для IIS и диспетчера служб IIS. Кроме того, решение задач местного управления потребует использования средств командной строки, поскольку консоль управления (MMC) также отсутствует. Между приложениями, работающими под управлением Server Core и полной версией Windows Server, не будет особых отличий в объеме занимаемой памяти и пропускной способности приложений, если уже были использованы преимущества компонентной структуры IIS. Работа, выполняемая IIS и вашими приложениями, одинакова на обеих платформах. Однако есть характеристика, где разница будет заметна: место, занимаемое сервером, как на жестком диске, так и в оперативной памяти.

Илон Маск рекомендует:  Серверы cgiкомандная строка

В качестве примера на рис. 3 показана разница в занимаемом объеме после одинаковой статической рабочей нагрузки на серверы, работающие под управлением Windows Server 2008 в полной конфигурации и Server Core. Хотя IIS занимает в обоих случаях почти одинаковое место, общий объем места, занимаемого операционной системой Server Core меньше, что позволяет поддерживать ту же рабочую нагрузку, используя существенно меньший объем памяти. Из-за меньшего размер установки может появиться возможность использовать менее мощное аппаратное обеспечение для работы приложения. При этом основная мощность процессора будет тратиться на обработку запросов приложения, а не операционной системы, что делает Server Core отличным вариантом для виртуализированных сред.

Рис. 3. Память, занимаемая Windows Server 2008 в полной конфигурации и Server Core после выполнения теста на статическую нагрузку

Применение топологий, адаптированных для нужд приложения

Оптимизируя нагрузку на приложение, в ней можно выделить отдельные части. Например, вместо 30 одинаковых веб-серверов можно обойтись 10 веб-серверами, 3 серверами приложений и 3 прокси-серверами, последние из которых будут выполняли бы кэширование и сжатие данных.

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

Во-вторых, специализация может привести к тому, что приложение будет лучше размещено в кэше, что увеличит его производительность. Это относится к кэшам низкого уровня, таким как аппаратный буфер TLB виртуальной памяти, кэш файловой системы, а также другие средства кэширования, реализуемые как операционной системой, так и приложением. Другим источником хорошего местоположения является ЦП. Уменьшение числа одновременно выполняемых операций путем уделения основного внимания только определенной части приложения позволяет уменьшить количество переключений контекста максимально увеличить объем работы, выполняемой ЦП.

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

Это возможно только в конфигурации потоков IIS и ASP.NET, которая существенно влияет параллелизм и косвенно сказывается на использовании памяти, задержке и пропускной способности множества приложений. Рабочая нагрузка статического файла IIS крайне асинхронна и требует максимального уровня одновременных запросов, но использует очень небольшое количество доступных потоков. С другой стороны, многие функции ASP.NET синхронны, отличаются длительной блокировкой и требуют большого количества потоков, тогда как для других функций требуется более низкий предел параллелизма для снижения воздействия на память. Путем выделения статической нагрузки и поврежденных частей конвейера обработки процессов в отдельный процесс или сервер можно оптимизировать параллелизм каждой отдельной нагрузки.

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

Оценку возможных преимуществ специализации в топологии приложения необходимо начать с поиска обработки или ограничений приложения, требующих существенных затрат ресурсов. Эти области должны быть первыми кандидатами на специализацию, поскольку при изоляции они могут обеспечить значительные возможности для оптимизации, а также потому, что для них потребуется наибольшее горизонтальное масштабирование. Затем необходимо оценить, позволит ли изоляция более эффективно использовать ресурсы остальным частям приложения. Наконец, потребуется оценить перегрузку механизма подключения, необходимую для объединения изолированных компонентов приложения.

Улучшенная поддержка приложения


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

При поддержке платформ приложений в IIS с помощью CGI или другого механизма можно улучшить производительность (а в некоторых случаях и стабильность) путем перехода на протокол FastCGI.

Первой платформой приложений, использующей преимущества этой поддержки, является PHP. Группа разработчиков IIS фактически напрямую работала с компанией Zend Technologies для обеспечения успешной работы реализации FastCGI IIS с PHP и улучшения производительности платформы PHP в Windows. (Более подробные сведения об этом проекте см. в моем блоге по адресу go.microsoft.com/fwlink/?Link >

Перенос PHP и других платформ приложений на IIS 7.0 и FastCGI позволит использовать преимущества различных функций IIS 7.0, в том числе интегрированный контейнер ASP.NET. Это предоставляет очень удобный способ улучшения платформ приложений при помощи служб ASP.NET без их преобразования в ASP.NET. Это также позволяет совместно работать приложениям, использующим различные платформы. Пример использования этого для улучшения существующих приложений при помощи функций и повышения производительности без изменения кода см. в моей статье «Улучшите приложения при помощи интегрированного конвейера ASP.NET» в журнале MSDN ® Magazine (доступна по адресу msdn.microsoft.com/magazine/cc135973.aspx).

Увеличенная плотность приложений

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

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

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

В качестве предупреждения: для достижения высокоскоростной подготовки необходимо перейти на новые API настройки, поскольку старые API настройки не позволяют этого. Кроме того, не все API настройки IIS предоставляют одинаковые характеристики производительности, поэтому для обеспечения максимальной производительности необходим тщательный выбор API. При возникновении сомнений используйте параметры конфигурации, которые напрямую используют новые объекты настройки IIS, включая пространство имен Microsoft.Web.Administration, служебную программу командной строки AppCmd.exe и объекты настройки IIS COM, которые можно вызвать из сценария, кода .NET или C++.

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

Поскольку для каждого активного приложения необходим определенный объем памяти и рабочий процесс (при использовании рекомендуемой модели изоляции приложений), количество активных приложений сильно зависит от объема памяти приложения. Поэтому хотя для рабочего процесса одного приложения, выполняющего только обслуживание статического содержимого, требуется всего 3 МБ (подобные приложения часто могут использовать рабочий процесс совместно с другими приложениями, работающими со статическим содержим), для некоторых динамических приложений может требоваться 100 МБ ОЗУ или больше даже при низкой загрузке. Это обуславливает незначительную загрузку памяти самим рабочим процессом IIS по сравнению с местом, которое занимает приложение, при определении максимальной возможной плотности.

В типичном сценарии совместного размещения часто можно увидеть так называемое распределение 80/20, когда 80 процентов запросов выполняются к 20 процентам узлов. Результат – небольшой процент активных узлов в любой определенный момент времени. Для обеспечения большего количества активных узлов службы IIS 7.0 предоставляют активное управление временем существования. Это помогает высвободить память неактивных приложений, чтобы можно было разместить большее количество активных приложений.

В IS 7.0 появился новый алгоритм под названием «динамический простой», заблаговременно регулирующий тайм-ауты простоя рабочих процессов на основе доступной на сервере памяти. При нехватке памяти простаивающие приложения удаляются более быстро, что обеспечивает размещение большего количества приложений. Однако при наличии доступной памяти тайм-ауты могут оставаться большими для обеспечения лучшей производительности и поддержания состояния приложения. Помимо большего количества приложений, которые могут быть активными, динамический простой позволяет избежать условий нехватки памяти, вызывающих существенное снижение производительности сервера из-за пробуксовки.

Для обеспечения возможности размещения множества активных приложений также следует использовать преимущества 64-разрядной операционной системы, заключающиеся в возможности использования более 4 ГБ ОЗУ. На основе этого можно настроить рабочие процессы IIS для работы в 32-разрядном режиме (SysWoW64), в котором они используют меньше памяти, одновременно позволяя операционной системе работать с большим объемом памяти, чем возможно в 32-разрядной среде.

Сокращение занимаемой полосы пропускания за счет сжатия данных

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

Одним из наиболее эффективных способов уменьшения полосы пропускания, необходимой для доставки ответов приложения, является использование сжатия HTTP. Оно позволяет значительно уменьшить размер ответа, часто даже в 10 раз, для просто сжимаемого содержимого, такого как HTML. Лучше всего то, что сжатие HTTP поддерживают практически все обозреватели для настольных систем, а затраты на распаковку на оборудовании настольных систем минимальны по сравнению с неявной экономией отправки меньшего количества данных. А поскольку сжатие основано на согласовании кодировки содержимого, определенном в протоколе HTTP 1.1, включение этой функции безопасно для клиентов, не поддерживающих сжатие — эти клиенты просто получают несжатую версию содержимого.

Службы IIS 7.0 предоставляет две функции сжатия, представленные в их предшественнике: статическое сжатие и динамическое сжатие. Статическое сжатие выполняет предварительное сжатие статического содержимого и сохраняет его на диск, таким образом, позволяя будущим запросам работать напрямую со сжатым содержимым без затрат на сжатие. Динамическое сжатие выполняет сжатие ответов в реальном времени, и позволяет сжимать созданные приложениями ответы. Все платформы приложений на IIS 7.0 могут использовать преимущества динамического сжатия, включая ASP, ASP.NET и PHP.

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

Можно дополнительно оптимизировать загрузку сжатия, настроив уровень сжатия для достижения необходимого соотношения сжатия и загрузки ЦП. Но на этом все не заканчивается — также можно настроить приложение для поддержки кэширования сжатого содержимого, что устраняет загрузку сжатия на попадания в кэше благодаря работе с уже сжатым содержимым. Имейте в виду, что в кэши вывода ASP.NET и IIS включена дополнительная возможность кэширования сжатого содержимого для поддерживающих это клиентов, а также обработка запросов клиентов, для которых необходимо несжатое содержимое.

Регулировка полосы пропускания для мультимедийных файлов

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

Вспомните, когда вы последний раз смотрели интерактивное видео или видели видеорекламу при просмотре веб-узлов. Вы досмотрели видео до конца? Чаще всего пользователи, посещающие узлы с видео, просматривают только часть видео до того, как перейти к следующему или уйти с веб-страницы. Однако веб-сервер, использующий прогрессивную загрузку для предоставления видео, обычно отправляет гораздо больше данных, чем необходимо для этих нескольких секунд воспроизведения. Большая часть данных никогда не используется.

Если среднее время просмотра ваших видео составляет всего 5 секунд, но за это время предоставляются (буферизируются) видеоданные длительностью 30 секунд, скорее всего, вы теряете более 80 процентов полосы пропускания!

Год назад для разрешения этой проблемы для клиента, переходящего на бета-выпуск IIS 7.0, я написал модуль регулировки полосы пропускания, автоматически определяющий скорость видео и обеспечивающий предоставление сервером видео клиенту приблизительно с этой же скоростью. Группа мультимедиа IIS использовала этот модуль, называющийся модулем регулировки скорости (см. рис. 4 ) и доступный в центре загрузок iis.net (iis.net/downloads/?tab >

Рис. 4. Регулировки скорости уменьшает использование полосы пропускания

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

Кэширование выводимых данных

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

До IIS 7.0, как IIS, так и ASP.NET предоставляли возможности кэширования в форме кэша ядра IIS и кэша вывода ASP.NET. Кэш ядра IIS обеспечивал максимальную производительность, но ограничивался преимущественно статическим содержимым. Кэш вывода ASP.NET был гораздо более полным решением для кэширования динамического содержимого, за исключением более низкой производительности и менее эффективного управления памятью. Новый кэш вывода в IIS 7.0 ликвидирует разрыв между кэшем ядра IIS и кэшем вывода ASP.NET.

Кэш вывода IIS 7.0 обеспечивает возможность кэширования динамического содержимого из любого приложения, включая ASP, ASP.NET, PHP и любых других платформ приложений, совместимых с IIS 7.0. Предоставляя базовую поддержку изменчивости и срока действия содержимого, эта новая функция позволяет реализовывать кэширование для содержимого, которое не может кэшироваться кэшем ядра IIS. Кэш ядра по-прежнему может использоваться для содержимого, не соответствующего ограничениям.

Кроме того, кэш ядра IIS 7.0 также предоставляет высокопроизводительную альтернативу кэшу вывода ASP.NET для содержимого ASP.NET, не требующего дополнительных функций кэширования (таких как зависимости кэша и недействительность данных в кэше), которые доступны только в кэше вывода ASP.NET.

Что касается кэширования выводимых данных, обычно проблемы связаны с определением верных политик срока действия содержимого, недействительности данных и изменчивости, обеспечивающих эффективное кэширование ответов и одновременное поддержание необходимой правильности и свежести кэша. В большинстве случаев это можно выполнить путем простой настройки верных правил кэширования, хотя иногда требуются более сложные политики, зависящие от информации времени выполнения. Для решения этой проблемы кэш вывода IIS 7.0 предоставляет программные API, которые могут использоваться для обеспечения необходимого поведения кэширования. Это разблокирует потенциал эффективности кэширования для содержимого, кэширование которого в противном случае было бы невыгодным. Кроме того, интегрированный конвейер ASP.NET позволяет использовать кэш вывода ASP.NET для содержимого, не относящегося к ASP.NET.

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

Но выполнение этой сложной работы почти всегда оправдано. Реализация кэша вывода IIS 7.0 позволяет в несколько раз улучшить общую пропускную способность приложения и соответственно уменьшить нагрузку на базу данных и компоненты уровня предприятия.

Преобразование кода ISAPI в модули IIS 7.0

В IIS 7.0 появился новый серверный интерфейс API, на котором основаны все модули IIS 7.0. Он заменяет устаревшие интерфейсы API ISAPI Filter и ISAPI Extension, использовавшиеся в предыдущих версиях IIS. Для новых модулей, которым не требуется поддержка предыдущих версий, новые API более просты в использовании, позволяют улучшить надежность серверного кода и гораздо более эффективны.

Однако IIS 7.0 предоставляет возможность поддержки существующих фильтров и расширений ISAPI путем использования слоя совместимости, реализуемого посредством дополнительных модулей IIS 7.0. Это позволяет существующим компонентам ISAPI работать в IIS 7.0 без необходимости переписывания.


Хотя использование существующих вложений в ISAPI снижает планку для перехода на IIS 7.0, следует серьезно рассмотреть перенос устаревшего кода ISAPI на новые API IIS 7.0. Это устраняет затраты на слой совместимости ISAPI и позволяет использовать преимущества производительности, недоступные для компонентов ISAPI. В зависимости от работы, выполняемой компонентом ISAPI, эти преимущества производительности могут быть довольно значительными. Например, API модуля IIS 7.0 предоставляет встроенную поддержку кэширования метаданных конфигурации и других произвольных данных, связанных с узлами, приложениями, URL-адресами, что можно значительно увеличить скорость выполнения внутренних операций компонента.

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

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

Для этого могут быть необходимы определенные эксперименты и прототипы для определения оптимальной архитектуры, наилучшим образом использующую улучшения перехода. Из-за фундаментальных архитектурных различий ISAPI и API модуля IIS 7.0 прямой маршрут переноса не всегда является верным. Хорошая новость заключается в том, что API модуля IIS 7.0 также более прост в использовании, чем ISAPI, что упрощает переход.

Расширяемость сервера

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

Это может быть выполнено путем замены каких-либо встроенных функций IIS 7.0 пользовательскими реализациями. Хотя IIS 7.0 претерпели значительную оптимизацию и тестирование производительности, они, конечно же, не оптимизированы для всех возможных применений. Поэтому можно повысить производительность определенных модулей путем создания оптимизаций для конкретной рабочей нагрузки. Например, можно решить повторно реализовать модуль вывода каталогов для кэширования списков содержимого каталогов в памяти вместо использования интерфейсов API операционной системы для перечисления файлов.

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

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

Заключение

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

Предел загрузки полосы пропускания для каждого пользователя в IIS

Я хочу ограничить загрузку в IIS. По моему сценарию каждый пользователь может загрузить только 300 Кбит / с.

я проверяю MaxBandwidth в IIS, но это ограничение на сумму пользователей не для каждого пользователя. также я проверяю Throttling Bandwidth но это ограничивает пропускную способность загрузки.

так как я могу ограничить загрузку полосы пропускания для каждого пользователя или каждого файла в IIS?

Илон Маск рекомендует:  Продвинутые уроки по HTML и CSS

1 ответ

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

Пожалуйста, проверьте ниже URL:

Чтобы ограничить загрузку, пожалуйста, проверьте ниже URL:

Iis регулирование полосы пропускания

Применимо к:Windows Server 2012 R2, Windows Server 2012

В этом документе описаны роли веб-сервера (IIS) для Windows Server® 2012 и новые компоненты Службы IIS 8, а также представлены ссылки на дополнительную информацию о серверах IIS от Майкрософт и сообщества.

Возможно, вы имели в виду.

Роль веб-сервера (IIS) в Windows Server 2012 обеспечивает безопасную, легко управляемую, модульную и расширяемую платформу для надежного размещения веб-узлов, служб и приложений. Использование веб-сервера Службы IIS 8 обеспечивает доступ к информации пользователям в Интернете, интрасети и экстрасети. Веб-сервер Службы IIS 8 — это унифицированная веб-платформа, которая совмещает IIS, ASP.NET, службы FTP, PHP и Windows Communication Foundation (WCF).

В следующем списке приведена только часть преимуществ, которые дает использование Службы IIS 8.

Максимизация уровня веб-безопасности благодаря сокращению объема сервера и автоматической изоляции приложений.

Простое развертывание и запуск веб-приложений ASP.NET, Classic ASP и PHP на одном сервере.

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

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

Повышение скорости работы веб-сайта с помощью встроенного динамического кэширования и расширенного сжатия.

Администраторы могут использовать роль веб-сервера (IIS) для настройки и управления несколькими веб-сайтами, веб-приложениями и FTP-сайтами. В число специальных возможностей входят следующие.

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

Использование протокола FTP для разрешения владельцам веб-сайтов отправлять и загружать файлы.

Использование изоляции веб-сайтов для предотвращения влияния одного веб-сайта на вашем сервере на остальные.

Настройка веб-приложений, разработанных с использованием различных технологий, таких как Classic ASP, ASP.NET и PHP.

Использование Windows PowerShell для автоматического управления большей частью задач администрирования веб-сервера.

Объединение нескольких веб-серверов в ферму серверов, которой можно управлять с помощью IIS.


Использование преимуществ оборудования NUMA и обеспечение оптимальной производительности сервера с архитектурой NUMA.

В следующей таблице приведены некоторые функции, впервые представленные в Службы IIS 8.

Компонент или функция

Новая или обновленная

Предоставляет единое хранилище сертификатов SSL для фермы серверов и упрощает управление привязками SSL.

Ограничения для динамических IP-адресов

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

Ограничение попыток входа на FTP

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

Индикатор имени сервера (SNI)

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

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

Масштабируемость с поддержкой NUMA

Предоставляет поддержку для оборудования NUMA с 32–128 ядрами процессора. Эта поддержка обеспечивает почти оптимальную производительность для оборудования NUMA.

Регулирование числа запросов IIS к ЦП

Ограничивает нагрузку на ЦП, потребление памяти и полосу пропускания с помощью одного пула приложений для нескольких развертываний. Службы IIS 8 включает дополнительные параметры регулирования нагрузки.

Не рекомендуется использовать оснастку Microsoft Management Console (MMC) «Диспетчер Internet Information Services (IIS) 6.0» в Windows Server 2012. В следующем выпуске Windows Server она будет удалена.

В следующей таблице представлены ссылки на ресурсы, связанные с этим сценарием.

Cервер приложений Internet Information Services (IIS)

Администраторам и разработчикам Web-приложений необходим надежный, легкоуправляемый, высокопроизводительный и защищенный Web-сервер. В Internet Information Services (IIS) 6.0 и Microsoft ® Windows ® Server 2003 появилось много новых возможностей, обеспечивающих надежность, доступность, управляемость, масштабируемость и безопасность сервера Web- приложений.

IIS 6.0 — ключевой компонент платформы приложений Windows Server 2003 — представляет собой интегрированный набор сервисов и средств, обеспечивающих разработку и развертывание высокопроизводительных Web-сайтов, Web-приложений и Web-сервисов.

Роль сервера приложений в семействе продуктов Windows Server 2003 сочетает в себе следующие серверные технологии:

1. Internet Information Services (IIS) 6.0 Информационные службы Интернета (IIS) 6.0. Они являются полноценным веб-сервером, оптимизированным для запуска веб-приложений и служб на узле.

2. Microsoft .NET Framework;

Это компьютерная платформа, разработанная для упрощения разработки приложений в распределенной среде Интернета. Microsoft .NET Framework предоставляет среду для объектно-ориентированного программирования, гарантирующую безопасное выполнение кода, и исключает затруднения, связанные с обеспечением быстродействия сценариев. В Microsoft .NET Framework входят два основных компонента:

· общая языковая среда выполнения

· библиотека классов Microsoft .NET Framework.

ASP.NET использует общую языковую среду выполнения для предоставления таких базовых служб, как управление памятью, управления потоками и удаленный доступ, совмещенный со строгой системой защиты и другими формами, обеспечивающими безопасность и устойчивость кода. Основным назначением этой среды является управление кодом. Код, предназначенный для работы в ней, называется управляемым, а код, не предназначенный для работы в ней — неуправляемым.

Библиотека классов Microsoft .NET Framework — собрание повторно используемых объектов, которые можно применять при создании приложений ASP.NET.

3. ASP.NET это часть Microsoft .NET Framework. ASP.NET представляет собой откомпилированную среду, основанную на технологии .NET. Имеется возможность создавать приложения на любом совместимом с .NET языке, в том числе на Visual Basic .NET, C# и JScript .NET. Кроме того, возможности среды .NET Framework, в том числе управляемая общая языковая среда времени выполнения, безопасность типов и наследование, доступны любому приложению ASP.NET

4. ASP; Active Server Pages (ASP) — активные серверные страницы. Страницы ASP являются средой создания серверных сценариев для разработки динамических интерактивных приложений веб-серверов. Они позволяют разработчикам объединять нужным образом страницы в формате HTML, команды сценариев и компоненты COM для создания мощных и гибких веб-приложений.

5. UDDI-сервисы; UDDI (Universal Description, Discovery and Integration) — это промышленный стандарт публикации и поиска сведений о веб-службах. В некоторые продукты семейства Windows Server 2003 включаются службы UDDI, веб-службы, обеспечивающие использование возможностей UDDI на предприятиях или в организациях. Службы UDDI являются стандартной веб-службой XML. Они позволяют разработчикам предприятия эффективно изучать, открывать совместный доступ и повторно использовать веб-службы непосредственно через средства разработки. Они не включены в Windows Server 2003, Web Edition. Кроме того, Windows Server 2003, Standard Edition поддерживает только изолированную установку служб UDDI. Поддержка распределенной установки доступна в Windows Server 2003, Enterprise Edition и Windows Server 2003, Datacenter Edition. При изолированной установке служб UDDI компоненты веб-сервера UDDI и баз данных UDDI устанавливаются на один компьютер. При распределенной установке компоненты UDDI распределены по нескольким серверам.

6. COM+; расширение модели объектных компонентов (COM). COM+ основано на интегрированных службах и свойствах COM, облегчая разработчикам создание и использование компонентов программного обеспечения на любом языке и используя любые средства.

7. Microsoft Message Queuing (MSMQ). Сервер очередей сообщений Microsoft. Очередь сообщений создается для взаимодействия приложений в распределенной среде (на разных компьютерах). Особенность MSMQ в том, что компьютеры не обязательно должны быть одновременно в сети. То есть можно отправить сообщение, можно получить, а за всем этим следит сервер MSMQ.

Таким образом, сервер приложений позволяет разработчикам Web-приложений и администраторам осуществлять хостинг динамических приложений, например для управления базой данных приложений Microsoft ASP.NET, не надо устанавливать на сервере дополнительное программное обеспечение.

В Windows Server 2003 сервер приложений можно настроить двумя способами: через мастер Configure Your Server или из приложения Add/Remove Components.

Архитектура обработки запросов в IIS 6.0

Сложность кода Web-сайтов и приложений постоянно возрастает.


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

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

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

В IIS 6.0 реализован новый вид отказоустойчивой архитектуры обработки запросов, которая предоставляет собой стабильную исполняющую среду с активным управлением.

Также кардинально повышена надежность и масштабируемость благодаря применению модели изоляции процесса (называемую моделью изоляции рабочего процесса ).

В дополнение увеличена производительность за счет поддержки кэширования и очередей запросов в режиме ядра.

В IIS 6.0 заложены две новые концепции

1. пулы приложений (application pools)

2. рабочие процессы (worker processes).

Пулы приложений применяются для управления набором Web-сайтов и приложений. Каждый пул приложения соответствует одной очереди запросов в HTTP.sys и одному или более Windows-процессам, обрабатывающим эти запросы.

IIS 6.0 поддерживает до 2 000 пулов приложений.

Одновременно могут работать несколько таких пулов. Например, сервер может выполнять приложение для учета кадров в одном пуле и бухгалтерское приложение — в другом.

То есть Интернет-провайдер (Internet Service Provider, ISP) может запускать Web-сайты и приложения одного клиента в одном пуле приложений, а Web-сайты второго клиента — в другом.

Пулы приложений отделяются друг от друга границами процессов в Windows Server 2003. Таким образом, приложения в одном пуле не влияют на приложения в другом; кроме того, запросы к приложениям нельзя перенаправлять из одного пула в другой.

Рабочий процесс обслуживает запросы к Web-сайтам и приложениям в пуле. Вся обработка Web-приложений, аутентификация и авторизация, выполняется новой библиотекой DLL Web – сервиса, которая загружается в один или несколько рабочих хост-процессов. Исполняемый файл рабочего процесса называется W3wp.exe.

В предыдущей версии IIS (IIS 5.0) один процесс, Inetinfo.exe, выполнял функции главного процесса Web-сервера. Он перенаправлял запросы к «внепроцессным» приложениям, размещенным в процессах DLLHost.exe.

IIS 6.0, напротив, состоит из двух новых компонентов:

1. Компонент WWW Service Administration and MonitoringДиспетчер пользовательского режима, управляющий работой сервера и следящий за выполнением кода приложения. Этот компонент не загружает и не исполняет код приложения. Другими словами компонент пользовательского режима, предназначенного для администрирования и мониторинга.

2. Стек HTTP режима ядра (HTTP.sys), который помещает в очередь и разбирает входящие HTTP-запросы, а также кэширует и возвращает контент сайта и приложения. HTTP.sys не загружает код приложения — он просто анализирует и перенаправляет запросы.

Таким образом, HTTP.sys в IIS принимает запросы и помещает их в очереди.

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

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

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

1. перезапуска процесса, который начнет принимать запросы,

2. исчерпания очередей,

3. отсутствия места в очередях

4. остановки администратором самого Web-сервиса.

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

Такая архитектура позволяет IIS 6.0 отделять операции Web-сервера от выполнения кода Web-сайта и приложения без ухудшения производительности.

Настройка сервера и управление рабочим процессом

При инициализации часть сервиса WWW, отвечающая за конфигурирование, использует хранящуюся в памяти конфигурационную метабазу для инициализации таблицы маршрутизации (routing table) пространства имен HTTP.sys.

Каждая запись в этой таблице содержит информацию, необходимую для перенаправления входящих URL пулу приложений, где находится сопоставленное с данным адресом приложение.

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

Все предварительные действия выполняются до того, как HTTP.sys приступает к перенаправлению запросов индивидуальным процессам.

По мере добавления новых приложений и их пулов Web-сервис настраивает HTTP.sys на прием новых адресов, создает новые очереди запросов для новых пулов приложений и указывает, куда перенаправлять новые URL. Для динамического изменения информации о маршрутизации перезапуск сервиса не требуется.

В роли управляющего рабочим процессом компонент WWW Service Administration и Monitoring отвечает за управление жизненным циклом рабочего процесса, обрабатывающего запросы.

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

Режим изоляции рабочего процесса


IIS 6.0 предоставляет новый режим изоляции приложения для управления обработкой Web-сайтов и приложений — режим изоляции рабочего процесса.

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

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

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

Первым делом HTTP.sys отправляет запросы, адресованные к Web-сайтам и приложениям, соответствующим очередям пулов приложений.

Затем рабочий процесс, обслуживающий пул приложений, извлекает запросы напрямую из очереди приложений в HTTP.sys. Такая модель позволяет избавиться от лишних переключений процессов, возникающих при отправке запросов внепроцессному DLLHost.exe и обратно (как в IIS 4.0 и 5.0), что увеличивает производительность.

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

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

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

Дополнительное преимущество — возможность задействовать другие сервисы операционной системы, доступные на уровне процесса [например управление распределением процессорного времени (CPU throttling)] для пулов приложений. Кроме того, архитектура Windows Server 2003 поддерживает гораздо больше параллельных процессов, чем в предыдущих операционных системах.

Режим изоляции рабочего процесса не дает одному приложению или сайту остановить другие приложения.

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

включение/выключение сайта или приложения (независимо от остальных работающих сайтов или приложений),

· изменение используемого приложением компонента,

· наблюдение за счетчиками производительности,

· регулирование ресурсов, выделяемых приложению.

Режим изоляции рабочего процесса в IIS 6.0 имеет следующие особенности.

1. Кэширование в режиме ядра.. В IIS 6.0 кэширование в режиме ядра осуществляется как в режиме изоляции рабочего процесса, так и в режиме изоляции IIS 5.0 (см. ниже). В качестве единой точки приема всех входящих (серверных) HTTP-запросов HTTP.sys создает высокопроизводительный канал связи для серверных HTTP-приложений и обеспечивает общее управление соединениями, регулирование полосы пропускания и протоколирование на стороне Web-сервера. IIS 6.0 основан на HTTP.sys и специально настроен на увеличение производительности Web-сервера. Кроме того, в некоторых случаях HTTP.sys напрямую обрабатывает запросы в ядре. Как статический, так и динамический контент Web-сайтов и приложений может помещаться в кэш HTTP.sys для уменьшения времени ответа.

2. Четкое разделение между пользовательским кодом и сервером.Весь пользовательский код обрабатывается рабочими процессами, полностью изолированными от ядра Web-сервера. Это важное усовершенствование по сравнению с IIS 5.0, так как ISAPI зачастую выполняются внутрипроцессно в ядре Web-сервера. Если ISAPI, загруженный в рабочий процесс, вызывает сбой или нарушение доступа к памяти, останавливается лишь рабочий процесс, выполняющий ISAPI. Тем временем сервис WWW создает новый рабочий процесс, заменяющий рухнувший. На остальные рабочие процессы это не оказывает никакого влияния.

3. Множественные пулы приложений.В IIS 5.0 приложения можно объединять во внепроцессный пул, но только в один, который выполняется в среде DLLHost.exe. Когда IIS 6.0 работает в режиме изоляции процессов, администраторы могут создать до 2 000 пулов приложений, причем каждый из них можно конфигурировать раздельно.

4. Улучшенная поддержка распределителей нагрузки. Благодаря пулам приложений IIS 6.0 поддерживает физическое разделение приложений. IIS 6.0 способен автоматически взаимодействовать с распределителями нагрузки (load balancers) или с коммутаторами для блокирования трафика к проблемному приложению, параллельно продолжая принимать запросы к другим приложениям. В IIS 6.0 также встроена модель расширения, позволяющая генерировать события и команды при обнаружении сбоя в конкретном приложении. Такая конфигурация позволят распределителям нагрузки и коммутаторам автоматически блокировать трафик к проблемным приложениям, не препятствуя запросам к работающим.

5. Web-сады (Web gardens).На обслуживание запросов, адресованных одному пулу приложений, можно настроить несколько рабочих процессов. По умолчанию каждому пулу соответствует один рабочий процесс. Однако пул можно настроить так, чтобы ему соответствовал набор из N эквивалентных рабочих процессов, разделяющих нагрузку. Такая конфигурация называется Web-садом. HTTP.sys распределяет запросы между рабочими процессами в группе. Распределение запросов основано на принципе карусели. Преимущества Web-садов в том, что, если один рабочий процесс замедляется, например, когда подсистема выполнения сценариев перестает отвечать, прием и обработка запросов продолжается остальными рабочими процессами.

6. Слежение за состоянием. Компонент WWW Service Administration and Monitoring следит за состоянием приложений, периодически проводя тестовый опрос рабочих процессов, чтобы выяснить, не заблокированы ли они. В случае блокировки рабочего процесса сервис WWW завершает рабочий процесс и создает вместо него новый. Сервис WWW поддерживает коммуникационный канал с каждым рабочим процессом и всегда в состоянии определить сбой в рабочем процессе по обрыву канала.

7. Привязка к процессорам (processor affinity). Рабочие процессы можно привязать к конкретным процессорам, чтобы увеличить частоту попаданий в кэш процессора (уровня L1 или L2). Реализация привязки к процессорам приводит к тому, что рабочие процессы IIS 6.0 выполняются на конкретных процессорах, и эта привязка распространяется на все рабочие процессы, обслуживающие Web-сайты и приложения в каком-либо пуле. Привязку к процессорам можно использовать в сочетании с Web-садами, выполняемым на многопроцессорных компьютерах, где под конкретные пулы приложений выделены кластеры процессоров.

8. Сопоставление сайтов и приложений с пулами приложений. В IIS 6.0, как и в IIS 5.0, приложения определяются как пространства. Сайты по умолчанию считаются простыми приложениями, в которых пространство имен сконфигурировано как приложение. Пул приложений можно настроить на обслуживание от одного Web-приложения до множества приложений и сайтов. Чтобы поместить приложение в пул, следует использовать IIS Manager или напрямую модифицировать метабазу.

9. Запуск по требованию. Пулы приложений позволяют запускать процессы, обслуживающие группу пространства имен по требованию, т. е. при первом запросе к URL, который является частью этого пространства имен. Компонент WWW Service Administration and Monitoring выполняет запуск процесса по требованию и в целом контролирует жизненный цикл рабочих процессов.

10. Время ожидания в простое. Пул приложений можно настроить на остановку собственных рабочих процессов, если они простаивают в течение определенного периода. Это нужно для освобождения неиспользуемых ресурсов. При необходимости для данного пула приложений запускаются дополнительные рабочие процессы (см. далее «Запуск по требованию»).

11. Быстрая защита от сбоев. При сбое рабочий процесс обрывает коммуникационный канал с компонентом WWW Service Administration and Monitoring. Последний обнаруживает это и принимает меры, обычно включающие запись события в журнал и перезапуск рабочего процесса. Кроме того, IIS 6.0 можно настроить на автоматическую блокировку рабочего процесса, если в пуле приложений возникает определенное число сбоев за заданный период. Такое поведение называется быстрой защитой от сбоев (rapid-fail protection). Быстрая защита от сбоев переводит пул приложений в состояние «не обслуживается», и HTTP.sys немедленно возвращает сообщение 503 (Service Unavailable) на любые запросы к частям этого пространства имен, в том числе на запросы, уже помещенные в очередь этого пула приложений.

12. Отбрасывание (orphaning) рабочих процессов.Режим изоляции рабочего процесса можно настроить на отбрасывание рабочих процессов, которые считаются зависшими. Например, если рабочий процесс не отвечает на тестовые опросы в течении определенного периода, сервис WWW обычно завершает его и запускает новый. А если включено отбрасывание, он оставляет зависший процесс в памяти и запускает новый. Кроме того, сервис WWW можно настроить на выполнение команды над рабочим процессом (например на подключение отладчика) при его отбрасывании.

13. Повторное использование рабочих процессов.Сейчас многие организации страдают от проблем, связанных с тем, что Web-приложения вызывают утечки памяти, плохо написаны или содержат непонятные ошибки. Это вынуждает администраторов периодически перезапускать Web-серверы. В предыдущих версиях IIS способа перезапустить Web-сайт, не прерывая работу всего сервера, не было. Режим изоляции рабочего процесса можно настроить на периодический перезапуск рабочих процессов в пуле приложения для борьбы со сбойными приложениями. Рабочие процессы можно настроить на перезапуск в соответствии со следующими критериями: истекшим временем, количеством обслуженных запросов, временем суток, использованием виртуальной и физической памяти, а также по требованию. Когда рабочий процесс считает необходимым выполнить перезапуск, он уведомляет WWW-сервис, который в свою очередь дает команду на завершение существующим рабочим процессам и выделяет заданное время на обработку оставшихся запросов. Одновременно сервис WWW создает замещающий рабочий процесс для той же группы пространства имен, и новый рабочий процесс запускается до завершения работы старого. Это предотвращает перебои в обслуживании. Старый рабочий процесс поддерживает связь с HTTP.sys для завершения обработки своих запросов, а затем либо нормально завершает работу, либо его работа завершается извне, если он не остановился по истечении заданного периода.

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

14. Режим изоляции IIS 5.0 Некоторые приложения не совместимы с режимом изоляции рабочего процесса IIS 6.0, например приложения-фильтры, читающие необработанные данные, или приложения, полагающиеся на выполнение в Inetinfo.exe или DLLHost.exe. Поэтому IIS 6.0 способен работать в другом режиме изоляции, который называется режимом изоляции IIS 5.0 и обеспечивает совместимость. Использование этого режима напоминает работу с самим IIS 5.0, так как в нем присутствуют те же основные процессы пользовательского режима. В частности, есть те же методы изоляции приложений (низкий, средний в пуле и высокий), а Inetinfo.exe — по-прежнему главный процесс, через который проходят все запросы.

Система безопасности IIS

Система безопасности IIS использует преимущества стандартов безопасности Интернет, поддерживаемых Windows.

Fortezza(американский правительственный стандарт безопасности). Он удовлетворяет архитектуре безопасности, поддерживая механизм шифрования, обеспечивающий конфиденциальность, целостность и подлинность сообщений, аутентификацию, контроль доступа к сообщениям, компонентам и системам. Эти функции реализуются как при помощи ПО сервера и браузера, так и при помощи аппаратных средств.

Secure Sockets Layer (SSL). Протоколы безопасности SSL широко используются Web-браузерами и серверами для аутентификации, конфиденциальности и целостности сообщений. При помощи функций безопасности SSL можно проверить целостность содержания Web-сервера, реквизиты пользователей и шифровать передаваемые по сети сообщения.

Transport Layer Security (TLS). TLS основан на SSL. Он помогает выполнять безопасную аутентификацию пользователей, а независимым программистам позволяет создавать поддерживающий TLS код, способный обмениваться зашифрованной информацией с другим процессом без ознакомления с кодом, созданным другим программистом. Кроме того, TLS является каркасом для построения новых методов шифрования с открытым ключом и шифрования больших объемов данных. TLS служит и для повышения производительности, уменьшая сетевой трафик и предлагая схему кэширования сессий, позволяющую сократить количество соединений, устанавливаемых «с нуля».

PKCS #7. Этот протокол описывает формат зашифрованных данных, например цифровых подписей или цифровых конвертов.


PKCS #10. Этот протокол описывает формат посылаемых сертификационным центрам (Certificate Authority, CA) запросов на получение сертификата.

Обычная проверка подлинности. Обычная аутентификация — стандартный метод сбора информации об именах пользователей и паролях. Она посылает пароли по сети в формате Base64 Encoded. К ее достоинствам можно отнести то, что она является частью спецификации HTTP 1.0 и поэтому поддерживается большинством браузеров. Однако обычная аутентификация имеет существенный минус — использующие ее Web-браузеры пересылают пароли в незашифрованном виде.

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

Они проходят через одношаговый процесс — хеширование (hashing). Результат этого процесса называется хешем (hash), или выборкой сообщения (message digest). Исходный текст не может быть расшифрован из хеша. Перед хешированием к паролю добавляется дополнительная информация генерируемая сервером, поэтому никто не сможет перехватить хеш пароля и с его помощью выдавать себя за истинного клиента. Краткая аутентификация основана на методологии общего секретного пароля. Она структурирована для использования несколькими прокси-серверами. Краткая аутентификация поддерживается не всеми обозревателями. Если не поддерживающий краткую аутентификацию браузер пошлет запрос на сервер, требующий именно этот способ аутентификации, сервер не будет обрабатывать запрос и сообщит клиенту об ошибке.

Путем проверки подлинности можно удостовериться в личности каждого клиента, запрашивающего доступ к Web-узлам.

IIS поддерживает для служб HTTP и FTP:

1. анонимную проверку подлинности HTTP и FTP;

2. обычную проверку подлинностиHTTP и FTP;

3. краткую проверку подлинности для доменов Windows 2000 и браузеров, поддерживаю щих этот способ аутентификации, реализованныйв HTTP I.I;

4. интегрированную проверку подлинности Windows (толькоHTTP).

Мониторинг полосы пропускания IIS

У меня есть общедоступная установка MS CRM 2011, и один из моих удаленных пользователей сообщил, что использует около 10gig данных из своего клиента Outlook.

Возможно ли в реальном времени видеть подключенных пользователей в IIS и сколько данных они потребляют? (Выделенный сервер не содержит других пользователей)

У меня нет доступа к внешнему брандмауэру, поэтому весь мониторинг должен быть удален с локального сервера IIS. Perfmon, я думаю, может это сделать, но хотел посмотреть, есть ли там какие-либо другие способы сделать это.

1 ответов

Вы можете использовать Монитор ресурсов в Server 2008+ для просмотра отдельных подключений в режиме реального времени. В Server 2008 R2 (может быть одинаковым в Server 2008) на вкладке «Сеть» есть две таблицы: таблица «Сетевая активность» и таблица «Соединения TCP».

В таблице Network Active вы найдете локальное приложение, PID, удаленный адрес и отправляемые и полученные байты в секунду. TCP-соединения сообщают вам локальный адрес, локальный порт, удаленный адрес, удаленный порт, потерю пакетов, задержку и локальное приложение / службу.

Вы можете проконсультироваться со своими журналами IIS и посмотреть, какие URL-адреса попадают (не в реальном времени, а довольно близко). Вы также можете использовать Log Parser, чтобы узнать, сколько данных отправлено и получено, если вы настроили IIS для регистрации этой информации. IIS. NET предоставляет много информации о различных способах использования Log Parser для устранения неполадок IIS. Пример запроса, показывающий общую пропускную способность пользователя (IP / User Agent):

Этот запрос был найден. наряду с другими примерами здесь

Мониторинг полосы пропускания IIS

У меня есть общедоступная установка MS CRM 2011, и один из моих удаленных пользователей сообщил, что использует около 10gig данных из своего клиента Outlook.

Возможно ли в реальном времени видеть подключенных пользователей в IIS и сколько данных они потребляют? (Выделенный сервер не содержит других пользователей)

У меня нет доступа к внешнему брандмауэру, поэтому весь мониторинг должен быть удален с локального сервера IIS. Перфмон, я думаю, может это сделать, но хотел посмотреть, есть ли там какие-либо другие способы сделать это.

Оптимизация ASP.NET — практические советы по работе с IIS

В данной публикации речь пойдёт о настройке важных параметров пула ASP.NET-приложений при вызове удалённых веб-сервисов и активной работе с сетью на стороне сервера через стандартные классы .NET.

Введение

Приходилось ли вам когда-нибудь самим настраивать производственные веб-сервера (production servers) под управлением ОС Windows Server 2008 R2/IIS 7.5 и выше? Для системных администраторов, имеющих большой опыт работы с IIS, скорее всего, это тривиальная задача, но вот для веб-разработчиков, которым по различным причинам порой приходится самим участвовать в настройке «боевых» серверов, данная информация может оказаться весьма полезной.

Предыстория

В конце прошлого года в одной крупной организации мы столкнулись с проблемами производительности веб-серверов при резко увеличившейся пользовательской нагрузке. В веб-приложении на тот момент было зарегистрировано более 200 000 клиентов. В обычном режиме одновременно работает около 1000 пользователей, за день примерно 10-15% уникальных посетителей от общего числа зарегистрированных, поэтому нагрузка относительно невысокая. Однако существуют пиковые нагрузки, при которых система оказывается практически неработоспособной.

Веб-администаторы проверили всё, что можно, и никак не могли понять, в чём дело. Ведь несмотря на то, что по всем основным параметрам системы на физическом уровне с производительностью было всё хорошо, возникали сбои с доступностью сервисов, а в пуле собиралась огромная очередь запросов. В организации используется NLB-кластер на 4 узла (Windows Server 2008 R2 + IIS 7.5 + .NET 4.5), есть запас по загрузке ЦП и памяти, сетевые каналы большие, количество используемых портов достаточное. Все проверки указывали на то, что проблемы кроются в недрах IIS и настройке пула ASP.NET. Живой пример, когда администраторам не помешала бы помощь опытных веб-разработчиков…

1. Параметры конфигурации IIS

Начиная с IIS 7, все настройки конфигурации ASP.NET хранятся в XML-файлах (*.config). Они заменили метабазу, которая использовалась в IIS 6.0 и более ранних версиях.

Схема конфигурационных файлов для IIS 7.x и выше выглядит так:

Рис. 1. Схема конфигурационных файлов

На вершине иерархической конфигурации .NET находится файл machine.config. Он определяет глобальные параметры для конкретной машины. В этом файле определяются поддерживаемые разделы конфигурационных файлов, настраивается рабочий процесс ASP.NET и регистрируются поставщики различных модулей. Для оптимизации процесса инициализации файл machine.config был значительно упрощен, и он располагается в каталоге:

Здесь же находится файл machine.config.comments, который позволяет узнать, какие параметры используются по умолчанию. С помощью этих данных в machine.config можно добавить параметры с переопределенными значениями.

Корнем иерархии конфигурации ASP.NET является файл web.config, расположенный в том же каталоге, что и machine.config. Этот файл включает в себя параметры, которые используются для всех приложений ASP.NET.

ApplicationHost.config — корневой файл конфигурации IIS, включает в себя описание всех сайтов, приложений, виртуальных каталогов и пулов приложений, а также глобальные установки по умолчанию для параметров веб-сервера. Он находится в следующих папках в зависимости от версии ОС:

  • для 32-битной — %WINDIR%\System32\inetsrv\config\
  • для 64-битной — %WINDIR%\SysWOW64\inetsrv\config\



Каждый локальный файл web.config применяет параметры конфигурации для каталога, в котором он расположен, а также для всех дочерних каталогов. Настройки вложенных каталогов могут быть переопределены собственными “конфигами”.

Прежде чем начинать настройку конфигурации IIS, обратите внимание на счетчики производительности ASP.NET, оцените текущую и пиковую загрузки системы, зафиксируйте имеющиеся показатели. Проверьте логи на наличие ошибки “HTTP Error 503.2 — Service Unavailable”. Постарайтесь определить, не блокируется ли часть запросов в очереди.

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

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

1. Параметр appConcurrentRequestLimit — максимальное количество одновременных запросов в приложении. Увеличение числа одновременных запросов IIS расширит доступные ресурсы веб-сервера для обслуживания запросов. Значение по умолчанию — 5000.

Наиболее быстро изменить параметр appConcurrentRequestLimit можно утилитой appcmd.exe через командную строку. Сделать это можно как глобально для всех сайтов IIS через файл ApplicationHost.config, так и для отдельного сайта (приложения).

Выполняем команду, затем открываем в IIS раздел «Configuration Editor» для корневого каталога и проверяем новое значение установленного параметра appConcurrentRequestLimit. Причём здесь же можно вручную изменить это значение.

Рис. 2. Установка параметра appConcurrentRequestLimit

Для установки данного параметра наиболее часто используется формула:
, где usersCount — количество одновременно работающих пользователей.

2. Параметр QueueLength — максимальное количество запросов, которые драйвер Http.sys размещает в очереди пула приложений. Когда очередь заполнена, новые запросы получают ошибку «503.2 — Service Unavailable». Значение по умолчанию — 5000.

Данный параметр можно настроить несколькими способами:

  • глобально для .NET на уровне сервера через machine.config, секция processModel/requestQueueLimit;
  • на уровне IIS через ApplicationHost.config: system.web/httpRuntime -> appRequestQueueLimit;
  • задать значение параметра queueLength для конкретного пула.

В качестве примера изменим данный параметр для пула «DefaultAppPool» через командную строку:

Выполняем команду, затем открываем в IIS раздел «Application Pools», выбираем в списке пул «DefaultAppPool », заходим в меню «Advanced Settings» и проверяем.

Рис. 3. Установка параметра queueLength

В диспетчере IIS выберите узел сервера в дереве, затем нажмите на иконку «Worker Processes»:

Рис. 4. Меню Worker Processes в диспетчере IIS

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

Рис. 5. Просмотр работающих пулов через Worker Processes

При нажатии “View Current Request” появляется таблица со списком адресов обрабатываемых страниц и другими полезными параметрами. Для обновления списка можно нажимать F5 на экране. Таким образом, вы сможете найти «подвисшие» запросы:

Рис. 6. Список текущих запросов в пуле

Для просмотра показателей производительности, конечно, лучше использовать счётчики Performance Monitor, но они не покажут вам, как Requests Monitor, URL-адреса текущих запросов.

2. Настройка ASP.NET

ASP.NET ограничивает число рабочих потоков и потоков портов завершения вызова, используемых для выполнения запросов. Если веб-приложение на стороне сервера активно использует вызовы внешних веб-сервисов, стандартные классы из пространства имён System.NET для организации запросов по сети, то могут возникнуть конфликты низкой производительности и взаимоблокировок. Вначале часть запросов может просто “подвисать”, время выполнения будет значительно возрастать. В худшем случае, если используется классический режим настройки пула (classic pipeline), это вообще может привести к перезагрузке пула (recycle). Обнаружение взаимоблокировки ASP.NET не выполняется для пула, запущенного в integrated mode (по умолчанию в IIS 7 и выше).

Работа пулов приложений в интегрированном режиме имеет несколько преимуществ по сравнению с работой в классическом режиме. Рекомедуется запускать пулы приложений в integrated mode.

На рисунке ниже наглядно видно, как происходит обработка запросов в ASP.NET и какие параметры имеют наиболее важное значение:

Рис. 7. Процесс обработки запросов в ASP.NET

Для оптимальной работы веб-приложений по умолчанию включен режим автоконфигурации настроек пула. В этом случае, cвойство autoConfig равно «true» для секции в файле machine.config, а другие ключевые параметры не заданы вообще.

Хорошенько “покопавшись” в MSDN и файле machine.config.comments, я нашёл описание базовой конфигурации пула. Есть 7 основных параметров, влиящих на работу ASP.NET с сервисами и сетью:

  • maxConnection
  • maxWorkerThreads / minWorkerThreads
  • maxIoThreads / minIoThreads
  • minFreeThreads
  • minLocalRequestFreeThreads

Параметр maxconnection определяет максимальное количество одновременных запросов с одного IP-адреса. При включенной по умолчанию автоконфигурации пула этот параметр определяется по формуле:
maxConnection = 12 * cpuNum, где cpuNum — это количество ядер процессора

Таким образом, на сервере с 4-х ядерным процессором максимальное кол-во одновременных подключений к конечному IP-адресу равно 48=12*4 (по умолчанию).

Самый простой способ обойти данное ограничение — это прямо в коде своего ASP.NET приложения в методе Application_Start в файле global.asax указать следующее:

Более гибко настраивать maxconnection лучше через конфигурационные файлы на уровне домена приложения (web.config) или веб-сервера (applicationHost.config). Секция содержит параметры, которые определяют, как .NET Framework подключается к сети.

Важно: Схема для адреса параметра maxconnection должна быть такой:

Увеличение maxconnection позволяет делать больше одновременных вызовов к удаленным сервисам. Этот атрибут не влияет на локальные вызовы веб-служб! Необходимо понимать, что недостаточно только обойти ограничение на количество одновременных подключений к сервису. Так как увеличение числа одновременных вызовов приводит к увеличению использования потоков CLR, которые используются для создания удаленных и обработки обратных вызовов.

ASP.NET через параметр maxWorkerThreads устанавливает ограничения потоков на рабочем процессе w3wp.exe (начиная с IIS 7). В связи с тем, что ASP.NET встроена в IIS, процессы ASP.NET формируют запросы на рабочих потоках. Из-за недостаточного количества потоков в CLR ThreadPool запросы будут становиться в очередь и “подвисать”.

Аттрибуты, заданные в секции :
1. Параметр maxWorkerThreads — указывает максимальное количество рабочих потоков для каждого процессора в пуле потоков среды CLR. Значение по умолчанию — 20. Максимальное значение — 100.

2. Параметр maxIoThreads — указывает максимальное количество потоков ввода/вывода для каждого процессора в пуле потоков среды CLR. Значение по умолчанию — 20. Максимальное значение — 100.

3. Параметр minWorkerThreads — указывает минимальное количество рабочих потоков для каждого процессора, которые могут быть предоставлены немедленно для обслуживания удаленного запроса. Значение по умолчанию — 1.


4. Параметр minIoThreads — указывает минимальное количество потоков ввода/вывода для каждого процессора, которые могут быть предоставлены немедленно для обработки обратного вызова. Значение по умолчанию — 1.

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

Аттрибуты, заданные в секции :
1. Параметр minFreeThreads — определяет количество потоков, которые могут быть использованы для работы, кроме обработки входящих запросов к рабочему процессу. Этот параметр не дает процессу ASP.NET использовать потоки из пула для обработки нового HTTP-запроса, если общее число потоков в пуле опустится ниже этого предела. Значение по умолчанию — 8.

2. Параметр minLocalRequestFreeThreads — определяет минимальное количество свободных потоков, которые ASP.NET держит доступными для выполнения новых локальных запросов. Значение по умолчанию — 4.

Обратите внимание, параметры maxWorkerThreads, minWorkerThreads, maxIoThreads, minIoThreads неявно умножаются на число процессоров, а параметры minFreeThreads и minLocalRequestFreeThreads — нет.

ASP.NET не будет выполнять более, чем следующее количество одновременных запросов:
(maxWorkerThreads * число ЦП) — minFreeThreads

Обратите внимание: на весь пул приложения, то есть на каждый рабочий процесс w3wp.exe, обслуживающий пул, имеется один пул потоков CLR ThreadPool. Для всех доменов приложений (сайтов), настроенных на один пул, используется общий набор потоков. Следовательно, для требовательных к ресурсам приложений лучше использовать отдельные пулы.

3. Рекомендации по оптимизации базовой конфигурации

Прежде всего, необходимо точно определить количество процессоров на веб-сервере. Как вариант, можно посмотреть TaskManager -> вкладка «Performance». Если процессор поддерживает режим HyperThreadingTechnology (HTT), значит половина ядер логические (Logical processors), а не физические (Cores). Например, при включенном режиме HTT процессор с 4-мя физическими ядрами будет работать как 8 логических ядер:

Рис. 8. Окно загрузки процессоров в TaskManager

Также можно попробовать воспользоваться следующими командами в командной строке:

или
Например, на сервере с 4-мя процессорами и свойством autoConfigtrue» ASP.NET будет иметь следующие параметры по умолчанию:
maxConnection – 48; maxWorkerThreads – 80; maxIoThreads – 80, minFreeThreads – 8, minLocalRequestFreeThreads – 4.

Если веб-страница на backend-части делает несколько сетевых вызовов для каждого запроса, то MSDN рекомендует использовать следующие настройки конфигурации:

  1. maxWorkerThreads = 100 | minWorkerThreads = maxWorkerThreads / 2 = 50
  2. maxIoThreads = 100
  3. maxConnection = 12 * N
  4. minFreeThreads = 88 * N
  5. minLocalRequestFreeThreads = 76 * N, где N — количество процессоров.

В этом разделе приведены только рекомендации, а не правила. Причём дата публикации этих данных довольно давняя. Для нашей “боевой” системы мы используем немного другие параметры конфигурации. Данные формулы — хорошая отправная точка для старта оптимизации, они хорошо показывают зависимость параметров друг от друга. Например, увеличив значение параметра maxConnection в несколько раз, вы легко можете “прикинуть” базовые значения для остальных параметров.

Изменения в секцию разрешено вносить только в файле machine.config из-за установленного там же атрибута allowDefinitionMachineOnly» при добавлении секции processModel.

Чтобы иметь возможность устанавливать значения секции processModel для каждого приложения в отдельности через web.config, необходимо установить свойство allowDefinitionEverywhere«.

Важно: после внесения изменений требуется обновить Application pools.

Помните, что увеличивать данные параметры нужно только в случае необходимости при наличии достаточного количества ресурсов ЦП.

Для анализа производительности веб-серверов рекомендую настроить счётчики ASP.NET через Performance Monitor:

  • ASP.NET Applications\Requests/Sec
  • Web Service\ISAPI Extension Requests/sec
  • ASP.NET\Requests Current
  • ASP.NET\Requests Queued
  • ASP.NET\ Requests Rejected
  • ASP.NET Applications\Requests Executing
  • ASP.NET Applications\Requests Timed Out
  • ASP.NET\ Request Execution Time

Для более глубокого анализа процесса w3wp.exe, обслуживающего пул приложений IIS, можно попробовать отладчик WinDbg из Windows Software Development Kit.

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

Дополнительно

Для лучшего понимания работы IIS рекомендую ознакомиться, как происходит процесс обработки запроса от браузера пользователя до конечного пула приложения ASP.NET в этой полезной статье «Основы архитектуры IIS, или запросопровод для ASP.NET».

Если вы используете IIS8 — не будет лишним обратить внимание на «Полноценное регулирование нагрузки CPU (CPU Throttling)».

Заключение

Для сайтов, которые не совершают частые сетевые запросы на стороне сервера, стандартных настроек пула должно хватать (processModel/autoConfig=“true”). При этом IIS выставит ограничение в 20 рабочих потоков и 12 удаленных соединений на ядро. При превышении этих значений запросы начнут становиться в очередь и производительность веб-приложения упадёт.

Если ваш сайт работает хорошо и вы можете оценить предполагаемую нагрузку на систему, то не стоит ничего менять. Если же у вас начинаются “зависания” при обработке запросов к различным сервисам — не следует сразу винить во всем железо! Лучше внести изменения в базовую конфигурацию ASP.NET. Имейте в виду, что изменение базовых параметров пула приложений непременно приведёт к увеличению загрузки процессора. Оптимальная балансировка всех параметров системы — ключ к стабильной и производительной работе оборудования. Как говорится, “предупрежден — значит вооружен”.

Приглашаю всех поделиться вашим опытом настройки и оптимизации работы производственных веб-серверов на платформе Windows Server.

Предел загрузки полосы пропускания для каждого пользователя в IIS

Я хочу ограничить загрузку в IIS. По моему сценарию каждый пользователь может загрузить только 300 Кбит / с.

я проверяю MaxBandwidth в IIS, но это ограничение на сумму пользователей не для каждого пользователя. также я проверяю Throttling Bandwidth но это ограничивает пропускную способность загрузки.

так как я могу ограничить загрузку полосы пропускания для каждого пользователя или каждого файла в IIS?

1 ответ

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

Пожалуйста, проверьте ниже URL:

Чтобы ограничить загрузку, пожалуйста, проверьте ниже URL:

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