Latence d'écriture sur le disque

Microsoft.SQLServer.2012.Database.DiskWriteLatencyMonitor (UnitMonitor)

Analyse de la latence d'écriture sur le disque des bases de données 2012

Knowledge Base article:

Résumé

L'analyse vérifie la latence de l'opération d'écriture sur le disque et déclenche une alerte.

Cette alerte indique que la durée moyenne nécessaire pour écrire sur le disque est restée supérieure au seuil au cours d'un intervalle.

Causes

Le problème peut être dû à des performances réduites de Microsoft SQL Server ou par un goulot d'étranglement sur le disque.

Solutions

Pour résoudre cette erreur, procédez de l'une des manières suivantes :

Article traitant des recommandations de SQL Server (pièges communs & meilleures pratiques en matière de configuration du disque)

http://msdn.microsoft.com/fr-fr/library/cc966412.aspx#EEAA

Element properties:

TargetMicrosoft.SQLServer.2012.Database
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2012.Database.DiskWriteLatency.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
La latence d'écriture sur le disque de la base de données SQL 2012 est trop élevée
La base de données « {0} » dans l'instance SQL « {1} » sur l'ordinateur « {2} », point de montage « {3} », présente une latence d'écriture sur le disque « {4} » trop élevée. Pour plus d'informations, consultez l'onglet « contexte de l'alerte ».
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2012.Database.DiskWriteLatencyMonitor" Accessibility="Public" Enabled="false" Target="SQL2012Core!Microsoft.SQLServer.2012.Database" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.Database.DiskWriteLatency.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.Database.DiskWriteLatencyMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter3>
<AlertParameter4>$Data/Context/ObjectName$</AlertParameter4>
<AlertParameter5>$Data/Context/Value$</AlertParameter5>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Normal" MonitorTypeStateID="Normal" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>300</IntervalSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<Threshold>25</Threshold>
<NumSamples>6</NumSamples>
</Configuration>
</UnitMonitor>