Analyse de la latence d'écriture sur le disque des bases de données 2012
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.
Le problème peut être dû à des performances réduites de Microsoft SQL Server ou par un goulot d'étranglement sur le disque.
Pour résoudre cette erreur, procédez de l'une des manières suivantes :
Déterminez si les performances du disque se sont dégradées ou si la charge de travail a augmenté.
Évaluez les recommandations de stockage de SQL Server.
Déterminez si le stockage des fichiers de bases de données a été surexploité, par exemple le stockage partagé dans le réseau SAN ou sur des ordinateurs virtuels.
Vérifiez qu'une quantité de mémoire adéquate a été allouée à SQL. Toute privation de mémoire de SQL server peut provoquer des lectures physiques plus élevées que la normale.
Article traitant des recommandations de SQL Server (pièges communs & meilleures pratiques en matière de configuration du disque)
Target | Microsoft.SQLServer.2012.Database | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2012.Database.DiskWriteLatency.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>
<SyncTime/>
</Configuration>
</UnitMonitor>