144 votes

Comment désactiver le délai d'inactivité du pool d'applications dans IIS7 ?

Sera-t-il désactivé si je règle le délai d'inactivité sur 0 ?

183voto

Kev Points 60744

Oui, la mise à zéro de la valeur du délai d'inactivité désactivera les délais d'inactivité.

Curieusement, cela n'est pas documenté dans la documentation de MS, mais j'en ai la preuve :

  • Schéma des paramètres IIS

    Si vous regardez le schéma des paramètres IIS dans :

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

    La définition du schéma pour idleTimeout sous

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

    ça ressemble à ça :

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

    Si vous regardez le validationParameter nous voyons une plage de 0 à 2592000 secondes (l'attribut ,60 spécifie la granularité du réglage, dans ce cas la valeur doit être divisible par 60 [une minute]).

    Si vous voyez une valeur de départ admissible de 0 alors cela indique généralement que le paramètre peut être désactivé.

  • Paramètres du délai d'inactivité du pool d'applications IIS7

    Brad Kingsley est le fondateur et le PDG d'OrcsWeb, qui est un hébergeur Microsoft et un partenaire Gold assez connu, respecté et digne de confiance.

  • Et puis il y a aussi la preuve empirique du fait que ça "marche" tout simplement.

11voto

Shay Mandel Points 71

Excellente réponse ! Merci Kev !

Une petite mise à jour : l'URL que vous avez postée a été déplacée et c'est maintenant : http://bradkingsley.com/iis7-application-pool-idle-time-out-settings/

Je me demandais s'il y avait une raison pour laquelle ce n'était pas la valeur par défaut, et si le fait de garder le pool d'applications ouvert trop longtemps pouvait avoir un impact sur les performances. Eh bien, le maintenir ouvert lorsqu'il est inactif ne vous causera pas plus de problèmes que de ne pas le recycler lorsqu'il y a du trafic et pas de temps d'inactivité. Si vous êtes préoccupé par les fuites de mémoire ou d'autres ressources, il existe un paramètre permettant de forcer le recyclage en fonction du temps/nombre de demandes depuis le dernier recyclage/ consommation de mémoire. Voici la documentation à ce sujet :

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

Je vais configurer mon serveur pour qu'il ne recycle pas en cas d'inactivité (idleTimeout=0) et qu'il recycle toutes les 24 heures : Recyclage > Intervalle de temps régulier = 1440

2voto

user6470603 Points 39
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" 
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X