Модуль переопределения URL-адресов (URLRewriter) 2.0 (Майкрософт) для IIS 7 (x64). В модуле переопределения URL-адресов 2.0 используется механизм переопределения на основе правил, позволяющий изменять запрошенные URL-адреса до их.
Наследование следует адресу URL запрошенного ресурса и не обязательно следует физической структуре файлов. Параметры из файла machine.config или файла web.config родительского приложения могут запретить переопределение параметров. IIS 7. 5 / Метки / Ёлпер. После установки Google Site. Map Generator на сервер Microsoft Windows 2. Server R2 может возникнуть проблема, которая проявляется в зацикливании рабочих процессов и/или их автоматическом отключении. В журнале системы будет сообщение: . В этом ёлпере показано, как устранить эту проблему. Например: yolper. Однако для поисквых систем сайты с www и без являются разными, хотя и могут иметь одинаковое содержание. Это плохо влияет на поисковую индексацию. В этом ёлпере показано, как настроить перенаправление адресов с www на адреса без www (или наоборот) через механизм переопределения url в IIS 7. Это связано с тем, что один или несколько доменов записаны кодированными в punycode. Чтобы все было нормально, нужно указывать домены как есть, без использования punycode. В этом ёлпере показано, как автоматически адаптировать файл web. IIS 6 для IIS 7. Если сервер настроен правильно, то проблема в клиенте, а точнее в способе подключения. Как именно с этим разобраться, рассказано в этом ёлпере. Введение. Приходилось ли вам когда- нибудь самим настраивать производственные веб- сервера (production servers) под управлением ОС Windows Server 2. R2/IIS 7. 5 и выше? Для системных администраторов, имеющих большой опыт работы с IIS, скорее всего, это тривиальная задача, но вот для веб- разработчиков, которым по различным причинам порой приходится самим участвовать в настройке «боевых» серверов, данная информация может оказаться весьма полезной. Ускоряем сайт на ASP. NET — экономим деньги предприятия и нервы администратора. Предыстория. 1. Параметры конфигурации IIS2. Рекомендации по оптимизации базовой конфигурации. Дополнительно. Заключение. Ссылки. Предыстория. В конце прошлого года в одной крупной организации мы столкнулись с проблемами производительности веб- серверов при резко увеличившейся пользовательской нагрузке. В веб- приложении на тот момент было зарегистрировано более 2. В обычном режиме одновременно работает около 1. Однако существуют пиковые нагрузки, при которых система оказывается практически неработоспособной. Веб- администаторы проверили всё, что можно, и никак не могли понять, в чём дело. Ведь несмотря на то, что по всем основным параметрам системы на физическом уровне с производительностью было всё хорошо, возникали сбои с доступностью сервисов, а в пуле собиралась огромная очередь запросов. В организации используется NLB- кластер на 4 узла (Windows Server 2. R2 + IIS 7. 5 + . NET 4. 5), есть запас по загрузке ЦП и памяти, сетевые каналы большие, количество используемых портов достаточное. Все проверки указывали на то, что проблемы кроются в недрах IIS и настройке пула ASP. NET. Живой пример, когда администраторам не помешала бы помощь опытных веб- разработчиков. Параметры конфигурации IISОбщее описание конфигурации . NETНачиная с IIS 7, все настройки конфигурации ASP. NET хранятся в XML- файлах (*. Они заменили метабазу, которая использовалась в IIS 6. Смеха конфигурационных файлов для IIS 7. Рис. Смеха конфигурационных файлов. На вершине иерархической конфигурации . NET находится файл machine. Он определяет глобальные параметры для конкретной машины. В этом файле определяются поддерживаемые разделы конфигурационных файлов, настраивается рабочий процесс ASP. NET и регистрируются поставщики различных модулей. Для оптимизации процесса инициализации файл machine. Microsoft. NETFramework< version. Number> CONFIGЗдесь же находится файл machine. С помощью этих данных в machine. Корнем иерархии конфигурации ASP. NET является файл web. Этот файл включает в себя параметры, которые используются для всех приложений ASP. NET. Application. Host. config — корневой файл конфигурации IIS, включает в себя описание всех сайтов, приложений, виртуальных каталогов и пулов приложений, а также глобальные установки по умолчанию для параметров веб- сервера. Он находится в следующих папках в зависимости от версии ОС: для 3. WINDIR%System. 32inetsrvconfigдля 6. WINDIR%Sys. WOW6. Каждый локальный файл web. Настройки вложенных каталогов могут быть переопределены собственными “конфигами”. Прежде чем начинать настройку конфигурации IIS, обратите внимание на счетчики производительности ASP. NET, оцените текущую и пиковую загрузки системы, зафиксируйте имеющиеся показатели. Проверьте логи на наличие ошибки “HTTP Error 5. Service Unavailable”. Постарайтесь определить, не блокируется ли часть запросов в очереди. Если производительность системы удовлетворяет потребностям заказчика, то лучше оставить параметры по умолчанию, ведь они рассчитаны для большинства ASP. NET приложений. При конфигурации IIS можно выделить два основных параметра, влияющих на доступность приложения и его производительность. Параметр app. Concurrent. Request. Limit — максимальное количество одновременных запросов в приложении. Увеличение числа одновременных запросов IIS расширит доступные ресурсы веб- сервера для обслуживания запросов. Значение по умолчанию — 5. Наиболее быстро изменить параметр app. Concurrent. Request. Limit можно утилитой appcmd. Сделать это можно как глобально для всех сайтов IIS через файл Application. Host. config, так и для отдельного сайта (приложения). Причём здесь же можно вручную изменить это значение. Рис. Установка параметра app. Concurrent. Request. Limit. Для установки данного параметра наиболее часто используется формула: < users. Count * 1. 5> , где users. Count — количество одновременно работающих пользователей. Параметр Queue. Length — максимальное количество запросов, которые драйвер Http. Когда очередь заполнена, новые запросы получают ошибку «5. Service Unavailable». Значение по умолчанию — 5. Данный параметр можно настроить несколькими способами: глобально для . NET на уровне сервера через machine. Model/request. Queue. Limit; на уровне IIS через Application. Host. config: system. Runtime - > app. Request. Queue. Limit; задать значение параметра queue. Length для конкретного пула. В качестве примера изменим данный параметр для пула «Default. App. Pool» через командную строку: appcmd. Установка параметра queue. Length. На заметку: Просмотр текущих запросов в работающем пуле через “IIS - > Worker Processes”В диспетчере IIS выберите узел сервера в дереве, затем нажмите на иконку «Worker Processes»: Рис. Меню Worker Processes в диспетчере IISВ появившемся списке вы можете видеть загрузку всех запущенных в текущий момент пулов. Рис. Просмотр работающих пулов через Worker Processes. При нажатии “View Current Request” появляется таблица со списком адресов обрабатываемых страниц и другими полезными параметрами. Для обновления списка можно нажимать F5 на экране. Таким образом, вы сможете найти «подвисшие» запросы: Рис. Список текущих запросов в пуле. Для просмотра показателей производительности, конечно, лучше использовать счётчики Performance Monitor, но они не покажут вам, как Requests Monitor, URL- адреса текущих запросов. Настройка ASP. NETASP. NET ограничивает число рабочих потоков и потоков портов завершения вызова, используемых для выполнения запросов. Если веб- приложение на стороне сервера активно использует вызовы внешних веб- сервисов, стандартные классы из пространства имён System. NET для организации запросов по сети, то могут возникнуть конфликты низкой производительности и взаимоблокировок. Вначале часть запросов может просто “подвисать”, время выполнения будет значительно возрастать. В худшем случае, если используется классический режим настройки пула (classic pipeline), это вообще может привести к перезагрузке пула (recycle). Обнаружение взаимоблокировки ASP. NET не выполняется для пула, запущенного в integrated mode (по умолчанию в IIS 7 и выше). Работа пулов приложений в интегрированном режиме имеет несколько преимуществ по сравнению с работой в классическом режиме. Рекомедуется запускать пулы приложений в integrated mode. На рисунке ниже наглядно видно, как происходит обработка запросов в ASP. NET и какие параметры имеют наиболее важное значение: Рис. Процесс обработки запросов в ASP. NETДля оптимальной работы веб- приложений по умолчанию включен режим автоконфигурации настроек пула. В этом случае, cвойство auto. Config равно . Есть 7 основных параметров, влиящих на работу ASP. NET с сервисами и сетью: max. Connectionmax. Worker. Threads / min. Worker. Threadsmax. Io. Threads / min. Io. Threadsmin. Free. Threads min. Local. Request. Free. Threads. Параметр maxconnection определяет максимальное количество одновременных запросов с одного IP- адреса. При включенной по умолчанию автоконфигурации пула этот параметр определяется по формуле: max. Connection = 1. 2 * cpu. Num, где cpu. Num — это количество ядер процессора. Таким образом, на сервере с 4- х ядерным процессором максимальное кол- во одновременных подключений к конечному IP- адресу равно 4. Самый простой способ обойти данное ограничение — это прямо в коде своего ASP. NET приложения в методе Application. Секция < system. NET Framework подключается к сети.< system. Management> < add address=. Этот атрибут не влияет на локальные вызовы веб- служб! Необходимо понимать, что недостаточно только обойти ограничение на количество одновременных подключений к сервису. Так как увеличение числа одновременных вызовов приводит к увеличению использования потоков CLR, которые используются для создания удаленных и обработки обратных вызовов. ASP. NET через параметр max. Worker. Threads устанавливает ограничения потоков на рабочем процессе w. IIS 7). В связи с тем, что ASP. NET встроена в IIS, процессы ASP. NET формируют запросы на рабочих потоках. Из- за недостаточного количества потоков в CLR Thread. Pool запросы будут становиться в очередь и “подвисать”. Аттрибуты, заданные в секции < process. Model> :1. Параметр max. Worker. Threads — указывает максимальное количество рабочих потоков для каждого процессора в пуле потоков среды CLR. Значение по умолчанию — 2. Максимальное значение — 1. Параметр max. Io. Threads — указывает максимальное количество потоков ввода/вывода для каждого процессора в пуле потоков среды CLR. Значение по умолчанию — 2. Максимальное значение — 1. Параметр min. Worker. Threads — указывает минимальное количество рабочих потоков для каждого процессора, которые могут быть предоставлены немедленно для обслуживания удаленного запроса. Значение по умолчанию — 1. Параметр min. Io. Threads — указывает минимальное количество потоков ввода/вывода для каждого процессора, которые могут быть предоставлены немедленно для обработки обратного вызова. Значение по умолчанию — 1. Параметры min. Worker. Threads/min. Io. Threads позволяют оперативно справиться с внезапно возросшим количеством одновременных подключений, когда в случае бездействия пул потоков может не иметь достаточно времени, чтобы достичь оптимального уровня потоков. Аттрибуты, заданные в секции < http. Runtime> :1. Параметр min. Free. Threads — определяет количество потоков, которые могут быть использованы для работы, кроме обработки входящих запросов к рабочему процессу. Этот параметр не дает процессу ASP. NET использовать потоки из пула для обработки нового HTTP- запроса, если общее число потоков в пуле опустится ниже этого предела. Значение по умолчанию — 8. Параметр min. Local.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
December 2016
Categories |