2009-10-20 12 views

Odpowiedz

169

Tak, ustawienie wartości limitu czasu bezczynności na zero spowoduje wyłączenie limitu czasu bezczynności.

dziwne nie jest to udokumentowane w docs SM ale mój dowód na to wynika z:

  • Ustawienia IIS Schema

    Jeśli spojrzeć na schemacie ustawień IIS w:

    C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml

    definicja schematu dla idleTimeout pod

    <sectionSchema name="system.applicationHost/applicationPools">

    wygląda:

    <attribute name="idleTimeout" 
         type="timeSpan" 
         defaultValue="00:20:00" 
         validationType="timeSpanRange" 
         validationParameter="0,2592000,60"/> 
    

    Jeśli spojrzeć na atrybucie validationParameter widzimy zakresie od 0 do 2592000 sekund (,60 określa ziarnistość ustawienia, w tym przypadku wartość musi być podzielny przez 60 [jedna minuta]).

    Jeśli widzisz dopuszczalną wartość początkową 0, to zwykle oznacza to, że ustawienie można wyłączyć.

  • IIS7 Application Pool Idle Time-out Settings

    Brad Kingsley jest założycielem i CEO OrcsWeb którzy są dość dobrze znane, szanowane i zaufany akademik Microsoft Gold Partner.

  • Istnieje również empiryczny dowód na to, że "po prostu działa".

+1

@pure - zapoznaj się z zaktualizowaną odpowiedzią. – Kev

+3

a headsup dla innych - po przeczytaniu tego, ustawiłem limit czasu bezczynności na 0 na IIS7 i natychmiast zaczęło się wyczerpywać - każde ładowanie strony trwało około 15 sekund. teraz podniosłem go do 600 i wszystko znowu jest niesamowicie szybkie. – nailitdown

+1

@nailitdown: Możesz to dokładnie sprawdzić. Właśnie ustawiłem limit czasu dla puli aplikacji IIS6 na 0 i działa dobrze. Jest szansa, że ​​różni się między IIS7/IIS6, co byłoby dobrze wiedzieć. –

8

Świetna odpowiedź! dzięki Kev!

Niewielka zmiana: URL zostanie zaksięgowana została przeniesiona i jest teraz: http://bradkingsley.com/iis7-application-pool-idle-time-out-settings/

Zastanawiałem się, czy istnieje powód, dlaczego nie jest to ustawienie domyślne, a jeśli nie może mieć wpływ na wydajność dla utrzymania Pula aplikacji jest otwarta zbyt długo. No cóż, utrzymywanie go w stanie bezczynności nie sprawi ci więcej kłopotu, niż nie będzie recyklingu, gdy będzie ruch i nie będzie bezczynności. Jeśli martwisz się o wycieki pamięci lub inne wycieki zasobów, istnieje ustawienie wymuszania recyklingu na podstawie czasu/liczby żądań od ostatniego użycia/zużycia pamięci. Oto dokumentacja do niego:

http://technet.microsoft.com/en-us/library/cc753179(v=ws.10).aspx

mam zamiar ustawić mój serwer bez zawracania na biegu jałowym (idleTimeout = 0), a recykling co 24 godziny: Recykling> regularny czas Interval = 1440

+13

Prawdopodobnie lepiej jest ustawić czas przetwarzania na określony czas (na przykład 0100), a nie 24 godziny, ponieważ spowoduje to 24 godziny od ostatniego restartu/zresetowania serwera. – Neal

0
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" 
} 
+1

Przydatne byłoby wyjaśnienie tego wklejonego kodu. –

Powiązane problemy