디스크 읽기 대기 시간

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

2012 DB의 디스크 읽기 대기 시간 모니터

Knowledge Base article:

요약

모니터가 디스크 읽기 작업의 대기 시간을 확인하고 경고를 발생시킵니다.

이 경고는 디스크에서 데이터를 읽는 데 걸린 평균 시간이 특정 간격 중의 임계값보다 높게 유지되었음을 나타냅니다.

원인

이 문제는 디스크 병목 현상 또는 디스크 경합으로 인해 발생할 수 있습니다.

해결 방법

이 오류를 해결하려면 다음 중 하나 이상을 수행합니다.

SQL Server 최선의 방법 문서(디스크 구성 최선의 방법 및 일반적인 문제)

http://go.microsoft.com/fwlink/?LinkId=789184

재정의 가능한 매개 변수

이름

설명

기본값

알림 우선 순위

알림 우선 순위를 정의합니다.

보통

알림 심각도

알림 심각도를 정의합니다.

오류

사용

워크플로를 사용하거나 사용하지 않도록 설정합니다.

아니요

알림 생성

워크플로가 알림을 생성하는지를 정의합니다.

간격(초)

워크플로를 실행하는 반복 시간 간격(초)입니다.

300

샘플 수

매개 변수 임계값 초과 수가 샘플 수보다 크거나 같으면 모니터 상태가 잘못됩니다.

6

동기화 시간

24시간 형식으로 지정된 동기화 시간입니다. 생략될 수 있습니다.

00:04

임계값

임계값

40

제한 시간(초)

워크플로가 닫히고 실패한 항목으로 표시될 때까지 실행이 허용되는 시간을 지정합니다.

200

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.DiskReadLatency.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
SQL DB 2012 디스크 읽기 대기 시간 너무 높음
컴퓨터 "{2}" 탑재 지점 "{3}"의 SQL 인스턴스 "{1}"에서 데이터베이스 "{0}"의 디스크 읽기 대기 시간 "{4}"이(가) 너무 높습니다. 자세한 내용은 "경고 컨텍스트" 탭을 참조하십시오.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2012.Database.DiskReadLatencyMonitor" Accessibility="Public" Enabled="false" Target="SQL2012Core!Microsoft.SQLServer.2012.Database" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.Database.DiskReadLatency.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.Database.DiskReadLatencyMonitor.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/SampleValue$</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>
<SyncTime/>
</Configuration>
</UnitMonitor>