Disk Write Latency

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

2012 DB のディスク書き込み遅延の監視

Knowledge Base article:

概要

The monitor checks latency for the disk write operation and throws an alert.

This alert indicates that the average time that it takes to write on the disk has stayed greater than threshold during an interval.

原因

The problem may be caused by low performance of the Microsoft SQL Server or by a disk bottleneck.

解決方法

To resolve this error, do one or more of the following:

SQL Server Best Practices Article (Disk Configuration Best Practices & Common Pitfalls)

http://msdn.microsoft.com/ja-jp/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
SQL DB 2012 のディスク書き込み遅延が多すぎます
The database "{0}" in SQL instance "{1}" on computer "{2}" mount point "{3}" has too high disk write latency "{4}".See "alert context" tab for more details.
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>