Будет ли он отключен, если я установил тайм-аут простоя в 0?
Как отключить тайм-аут пула приложений в IIS7?
Ответ 1
Да, установка значения тайм-аута ожидания на ноль приведет к отключению тайм-аутов простоя.
Как ни странно, это не документировано в документах MS, но мои доказательства для этого возникают из:
-
Схема настроек IIS
Если вы посмотрите схему параметров IIS в:
C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml
Определение схемы для
idleTimeout
под<sectionSchema name="system.applicationHost/applicationPools">
он выглядит так:
<attribute name="idleTimeout" type="timeSpan" defaultValue="00:20:00" validationType="timeSpanRange" validationParameter="0,2592000,60"/>
Если вы посмотрите на атрибут
validationParameter
, мы видим диапазон от 0 до 2592000 секунд (,60
указывает степень детализации настройки, в этом случае значение должно быть разделено на 60 [одна минута]).Если вы видите начальное допустимое значение
0
, тогда обычно указывается, что этот параметр можно отключить. -
Брэд Кингсли является основателем и генеральным директором OrcsWeb, который является довольно известным, уважаемым и доверенным владельцем Microsoft и Золотым партнером.
-
Тогда есть также эмпирическое доказательство того, что он "просто работает".
Ответ 2
Отличный ответ! спасибо Кев!
Небольшое обновление: URL, который вы опубликовали, перемещен, и теперь он: http://bradkingsley.com/iis7-application-pool-idle-time-out-settings/
Мне было интересно, есть ли причина, по которой это не является дефолтом, и может ли быть влияние производительности для того, чтобы поддерживать пул приложений слишком долго. Ну, сохраняя его, когда он простаивает, не будет вызывать больше проблем, чем не перерабатывать его, когда есть трафик и нет времени простоя. Если вас беспокоит утечка памяти или утечка других ресурсов, существует настройка для принудительной переработки на основе времени/количества запросов с момента последнего потребления/потребления памяти. Вот документация для него:
http://technet.microsoft.com/en-us/library/cc753179(v=ws.10).aspx
Я собираюсь отключить мой сервер на холостом ходу (idleTimeout = 0) и перерабатывать каждые 24 часа: Утилизация > Регулярный интервал времени = 1440
Ответ 3
Import-Module WebAdministration
$pools = Get-ChildItem iis:\apppools
foreach ($pool in $pools)
{
$poolname = $pool.Name
Set-ItemProperty IIS:\AppPools\$poolname -name processModel -value @{idletimeout="20"}
Set-ItemProperty IIS:\AppPools\$poolname -name processModel -value @{idletimeoutaction="Suspend"}
set-ItemProperty IIS:\AppPools\$poolname -Name Recycling.periodicRestart -Value @{time="0"}
set-ItemProperty IIS:\AppPools\$poolname -Name Recycling.periodicRestart.schedule -Value @{value="02:00:00"}
Set-ItemProperty IIS:\AppPools\$poolname -name Recycling -value @{logEventOnRecycle="Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory"}
Write-Host "Updated $poolname settings"
}