Latencia de lectura del disco de base de datos

Microsoft.SQLServer.Linux.Monitor.Database.DBDiskReadLatency (UnitMonitor)

Supervisa la latencia de lectura de disco de todos los discos lógicos que hospedan archivos de base de datos.

Knowledge Base article:

Resumen

Supervisa la latencia de lectura de disco de todos los discos lógicos que hospedan archivos de base de datos.

Causas

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

Resoluciones

Para solucionar este problema puede:

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Prioridad de la alerta

Define la prioridad de alerta.

Alto

Gravedad de la alerta

Define la gravedad de alerta.

MatchMonitorHealth

Umbral crítico

El monitor cambiará su estado a crítico si el valor supera este umbral.

40

Habilitado

Habilita o deshabilita el flujo de trabajo.

No

Genera alertas.

Define si el flujo de trabajo genera una alerta.

Intervalo (segundos)

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

900

Número de ejemplos

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

6

Hora de sincronización

Hora de sincronización especificada en un formato de 24 horas. Se puede omitir.

 

Tiempo de espera (segundos)

Especifica el tiempo que el flujo de trabajo se puede ejecutar antes de cerrarlo y marcarlo como erróneo.

300

Element properties:

TargetMicrosoft.SQLServer.Linux.Database
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityHigh
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Linux.MonitorType.Database.DBDiskReadLatency
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL en Linux: la latencia de lectura de disco de base de datos es superior al umbral inferior.
La latencia de lectura de disco de la base de datos "{0}" de la instancia de SQL "{1}" del equipo "{2}" está por encima del umbral. Vea la pestaña "Contexto de alerta" para obtener más detalles.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.Database.DBDiskReadLatency" Accessibility="Public" Enabled="false" Target="SqlDiscL!Microsoft.SQLServer.Linux.Database" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.Database.DBDiskReadLatency" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.Database.DBDiskReadLatency.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<ObjectName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/PerformanceCounterObject$:TransactionLog</ObjectName>
<CounterName>DB Disk Read Latency (ms)</CounterName>
<PerfInstanceName/>
<ValuePropertyName>ReadLatency</ValuePropertyName>
<Threshold>40</Threshold>
<NumSamples>6</NumSamples>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>