Cette analyse passe en revue les événements journalisés lorsque le pool d'applications est recyclé en raison du dépassement des seuils de mémoire configurés et définit son état sur avertissement si le pool d'applications est recyclé trop fréquemment (en fonction de la configuration de l'analyse). Il s'agit d'une analyse de réinitialisation manuelle, ce qui signifie qu'elle ne passera pas automatiquement à l'état d'intégrité. Pour que l'analyse passe à l'état d'intégrité, vous devez la réinitialiser à l'aide de l'explorateur d'intégrité.
Le pool d'applications est recyclé trop fréquemment, car sa consommation de mémoire virtuelle ou physique a atteint la limite configurée. Cela peut indiquer une fuite de mémoire dans le code exécuté par le pool d'applications.
L'analyse recherche divers événements de recyclage de pool d'applications dus au fait que le seuil d'utilisation de mémoire configuré a été atteint (celui-ci étant configuré dans les outils d'administration IIS). Vous pouvez configurer deux paramètres pour cette analyse. Le premier est « Nombre d'occurrences ». Il s'agit du nombre de fois que les événements recherchés par l'analyse doivent se produire dans l'intervalle de temps configuré. Le second paramètre est « Nombre de minutes ». Il s'agit de l'intervalle de temps pendant lequel l'analyse recherche des occurrences d'événement.
Il y a une fuite de mémoire dans le code exécuté par le pool d'applications.
La limite de mémoire physique ou virtuelle est trop basse.
Pour contrôler ou configurer les paramètres de limite du pool d'applications à l'aide du Gestionnaire des services Internet (IIS) :
Cliquez sur Démarrer, sur Panneau de configuration, puis sur Outils d’administration.
Cliquez avec le bouton droit surGestionnaire des services Internet (IIS) et sélectionnez Exécuter en tant qu'administrateur.
Dans le volet Connexions situé à gauche, développez l'ordinateur, puis sélectionnez le dossier Pools d'applications sous le nom de l'ordinateur.
Dans Affichage des fonctionnalités, sélectionnez le pool d'applications. Dans le volet Actions, sélectionnez Paramètres avancés.
Contrôlez ou configurez les paramètres de limites du pool d'applications dans la ou les sections appropriées.
Remarque : Puisqu'il s'agit d'un moniteur avec réinitialisation manuelle, une fois le problème résolu, vous devez réinitialiser l'état de ce moniteur dans l'explorateur d'intégrité. Vous pouvez également effectuer cette opération en cliquant avec le bouton droit sur l'analyse, puis en sélectionnant l'élément de menu « Réinitialiser l'intégrité ». Sauf si vous avez réinitialisé manuellement l'analyse, elle ne passera pas à l'état d'intégrité.
Target | Microsoft.Windows.InternetInformationServices.6.2.ApplicationPool | ||
Parent Monitor | System.Health.AvailabilityState | ||
Category | AvailabilityHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Windows.InternetInformationServices.6.2.RepeatedEventLogManualReset2StateMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Windows.InternetInformationServices.6.2.ApplicationPool.MemoryLeak.Monitor" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.InternetInformationServices.6.2.ApplicationPool" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.Windows.InternetInformationServices.6.2.RepeatedEventLogManualReset2StateMonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.InternetInformationServices.6.2.ApplicationPool.MemoryLeak.Monitor_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="IISCommon!Microsoft.Windows.InternetInformationServices.ApplicationPool"]/PoolID$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="PotentialMemoryLeakDetected" MonitorTypeStateID="RepeatedEventRaised" HealthState="Warning"/>
<OperationalState ID="Healthy" MonitorTypeStateID="ManualResetEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<RepeatedComputerName>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</RepeatedComputerName>
<RepeatedLogName>System</RepeatedLogName>
<RepeatedExpression>
<And>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^(5117|5077)$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-WAS</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[2]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="IISCommon!Microsoft.Windows.InternetInformationServices.ApplicationPool"]/PoolID$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</RepeatedExpression>
<NumberOfSeconds>3600</NumberOfSeconds>
<NumberOfOccurrences>10</NumberOfOccurrences>
</Configuration>
</UnitMonitor>