Latencia de lectura de disco

Microsoft.SQLServer.2014.Database.DiskReadLatencyMonitor (UnitMonitor)

Monitor de latencia de lectura de disco para bases de datos de 2014. Nota: este monitor está deshabilitado de manera predeterminada. Use las invalidaciones para habilitarlo cuando sea necesario.

Knowledge Base article:

Resumen

El monitor comprueba la latencia de la operación de lectura del disco y genera una alerta.

Esta alerta indica que el tiempo promedio necesario para leer los datos del disco ha permanecido mayor que el umbral durante un intervalo.

Causas

El problema puede estar deberse a una contención de disco o a un cuello de botella en el disco.

Soluciones

Para resolver este error, realice una o varias de las siguientes acciones:

Artículo de prácticas recomendadas de SQL Server (Prácticas recomendadas de configuración de disco y errores habituales)

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

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Habilitado

 

No

Genera alertas

 

Intervalo (segundos)

Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo.

300

Número de ejemplos

Indica cuántas veces debe superar un umbral un valor medido para que cambie el estado.

6

Umbral

El valor recopilado se comparará con este parámetro.

40

Tiempo de espera (segundos)

Especifica el tiempo durante el que se puede ejecutar el flujo de trabajo antes de que se cierre y se marque como error.

200

Element properties:

TargetMicrosoft.SQLServer.2014.Database
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.Database.DiskReadLatency.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2014: la latencia de lectura de disco es demasiado alta
La base de datos “{0}” en la instancia de SQL “{1}” en el equipo “{2}” punto de montaje “{3}” tiene una latencia muy alta de lectura del disco “{4}”. Vea la pestaña "Contexto de alerta" para obtener más detalles.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.Database.DiskReadLatencyMonitor" Accessibility="Public" Enabled="false" Target="SQL2014Core!Microsoft.SQLServer.2014.Database" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.Database.DiskReadLatency.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Database.DiskReadLatencyMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.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>40</Threshold>
<NumSamples>6</NumSamples>
</Configuration>
</UnitMonitor>