Бассейны приложений в IIS могут быть несколько тайны. Поскольку они созданы для вас, автоматически много раз администраторы и разработчики не дают им вторую мысль.
Но когда все пойдет не так с пулом приложений, он может стать очень запутанным. Существует также некоторые серьезные усиления производительности для оптимизации ваших бассейнов приложений. Понимание бассейнов приложений имеет решающее значение для хорошего запущенного сервера IIS и лучшие приложения.
Что такое бассейн приложений?
Чтобы понять бассейны приложений, мы должны сначала понять приложения, насколько IIS обеспокоен.
Приложение это набор файлов и папок, которые доставляют контент. Любой веб-сайт будет иметь приложение по умолчанию, назначенное ему, даже если это просто HTML и изображения. Диаграмма ниже показывает веб-сервер/веб-сайт/приложение:
Бассейн приложений это контейнер для ваших приложений. Он служит для выделения вашего приложения из других приложений на сервере. Каждое приложение в бассейне приложения разделяет рабочий процесс (w3wp.exe). Вы можете иметь несколько приложений, которые используют один и тот же рабочий процесс или имеют один для каждого приложения.
При настройке пулов приложений у вас есть несколько вариантов. Давайте сравним пару образцы.
Несколько приложений в одном бассейне
С помощью этой настройки каждое приложение разделяет один и тот же пул/процесс. Некоторые причины, по которым вы можете сделать это:
- Проще дизайн
- При внесении изменений вам нужно только сделать это один раз.
- Кэширование улучшено, код может быть разделен и кэширован между приложениями
Некоторые причины, по которым вы не хотите:
- Один акт сводит каждое приложение
- Приложение с высокой нагрузкой замедлит остальных
- Все приложения имеют одну и ту же профиль безопасности
- Одним из приложений требуемая настройка может сломать другое приложение.
Каждое приложение имеет свой собственный пул приложения
При этой установке каждое приложение имеет свой уникальный процесс.
Некоторые причины, по которым вы можете сделать это:
- Изолированные операции — если одно приложение не может не влиять на других.
- Изолированные характеристики — приложение более высокого нагрузки (скорее всего) не замедлит другие приложения.
- Безопасность может быть настроена для каждого приложения индивидуально.
Некоторые причины, по которым вы не хотите делать это:
- Настройки не могут быть изменены по всему миру, должны делать один за другим.
- Обычный код кэширования преимуществ не присутствует.
- Может создать больше накладных расходов, чем один бассейн.
Для этого нет «волшебной пули», это будет зависеть от вашего сайта и потребностей вашей организации. Это определенно то, что вы хотите поэкспериментировать с лучшими результатами.
Настройки пула приложений
Существуют некоторые важные настройки для рассмотрения с пулами приложений. Если вы выбираете основные настройки, вы не получите много:
Это позволяет только изменить вашу версию CLR и режим управляемого трубопровода. Но выберите расширенные настройки, и вы получите гораздо больше вариантов:
Вот некоторые из них часто видели:
.Сеть CLR — Хотя не отличная причина запускать более низкую версию .NET Это происходит. Обычно я устанавливаю это, когда на каркасе пула приложения по умолчанию составляет 2,0.
Включить 32 бит приложения — Это распространенный для обратной совместимости. Например, последнее приложение, которое я работал над тем, что требуется, это использованные 32-битные DLL, написанные на C ++, и приложение не будет функционировать без этой настройки.
Управляемый режим трубопровода — Это еще один, используемый для обратной совместимости. Вам может понадобиться классический режим для некоторых старых приложений ASP.
Длина очереди — Это дроссельная установка, и это довольно грубо, но полезно. Что здесь мы говорим, мы можем иметь 1000 запросов в очереди, и выше, чтобы посетители получат ошибку 503.
Ограничить — Это еще одна мера дросселирования, которая контролирует максимальный процент времени процессора, который вы хотите использовать этот пул приложения для потребления.
Ограничить действие Указывает, что делать, когда этот предел ударил. Вы можете убить процесс, дросселься или ничего не делайте.
Ограниченный интервал для тонкой настройки дросселирования. После того, как предел пределов поражен, этот параметр контролирует, сколько минут мы можем остаться в этом состоянии до переработки. Если это слишком долго, у вас может быть дросселирование после того, как он больше не нужен. Слишком короткий и промежуток просто сохранить его дросселирование.
Личность — Это важно, потому что это пользователь ваш пул вашего приложения осенствует. Большая часть времени приложений Application Identity — ваш лучший выбор, но есть времена, когда вам понадобится конкретный пользователь для запуска процесса. В этом случае вы можете иметь этот пул приложения под учетной записью пользователя, и это дано их разрешения. Не делай этого, если вы абсолютно не надо. Это то, что я видел много в поле, особенно в приложениях с высоким уровнем безопасности.
Как я уже говорил, нет серебряной пули для настройки. Это действительно зависит от вашей организации и как используется ваш сайт. Отличная мелодия на одном веб-сайте может быть плохо для другого.
Как создать пул приложений
Создание бассейнов приложений в IIS легко. Вы можете отправиться в менеджер IIS в Бассейны приложений Функциональная панель, щелкните правой кнопкой мыши и создайте новый:
Или вы можете создать один с PowerShell (мой предпочтительный вариант):
$appPoolName = 'jeremyscoolapp' if(!(Test-Path IIS:\AppPools\$appPoolName)) { $appPool = New-Item $appPoolName $appPool | Set-ItemProperty -Name "managedRuntimeVersion" -Value 'v4.0' } Set-ItemProperty iis:\Sites\WebsiteName -Name applicationpool -Value $appPoolName
В этом скрипте вы можете увидеть, что я определяю имя для моего пула приложений. Затем я проверю, чтобы увидеть, если это уже существует. Если это не так, я создаю новый пул приложений. Затем я использую Set-ItemProperty, чтобы изменить версию времени выполнения до 4.0. Вы можете установить любой из настроек пула приложений таким образом.
Чтобы увидеть параметры, вы можете изменить тип следующего в приглашении PowerShell:
Get-Item IIS:\AppPools\DefaultAppPool | Select-Object *
Замените DefaultAppool с именем вашего пула приложений, если он отличается.
Заключение
Я надеюсь, что это дало вам хорошее введение в бассейны приложений в IIS. Поскольку они создаются автоматически часто часто администраторы не дают много мысли, чтобы их их установить. Многие веб-сайты проходят отлично с настройками по умолчанию. Если вы обнаружите, что нуждается в пользовательской конфигурации или у вас есть некоторые проблемы нагрузки, теперь у вас есть хорошее понимание бассейнов приложений и где их посмотреть, чтобы изменить их.
Я охвачу это и многие больше темы IIS в моем новом плютаре в курсе Администрация IIS Основы Отказ Проверьте это, если вы заинтересованы в том, чтобы узнать больше о Администрации IIS.
Оригинал: «https://dev.to/pluralsight/demystifying-iis-application-pools-40d6»