총 CPU 사용률

Microsoft.Windows.Server.10.0.OperatingSystem.TotalCPUUtilization (UnitMonitor)

Information\\% Processor Time\_Total과 System\Processor Queue Length 성능 카운터를 상호 연관시켜 해당 서버의 총 CPU 사용률을 모니터링합니다.

Knowledge Base article:

요약

시스템 프로세서의 CPU 사용률(Processor Information\% Processor Time\_Total 및 System Queue Length)이 임계값을 초과했습니다. 이 임계값이 초과되면 전체 시스템 성능이 크게 저하될 수 있으며 이로 인해 운영 체제 및 응용 프로그램의 성능이 저하될 수 있습니다.

구성

Total CPU Utilization 모니터링 루틴은 사용자가 원하는 대로 구성할 수 있는 솔루션으로 운영자는 이를 통해 System\Processor Queue 및 프로세서\프로세서 시간 비율\_Total 성능 카운터의 임계값을 설정할 수 있습니다. 연속되는 여러 샘플에서 두 카운터의 값이 모두 정의된 임계값을 초과하면 모니터의 상태가 변경됩니다. 임계값을 초과하여 샘플링되면 모니터 상태가 변경되는 연속 샘플 수도 구성할 수 있습니다.

Total CPU Utilization 모니터링 루틴의 기본 임계값에는 다음이 포함됩니다.

매개 변수

기본값

CPU 큐 길이 임계값

15

CPU 백분율 임계값

95

Num 샘플

3

재정의를 사용하여 위에서 정의한 임계값을 변경할 수 있습니다.

원인

컴퓨터가 지속적으로 부하가 많은 상태에 있는 경우 다음 상태로 인한 것일 수 있습니다.

해결 방법

프로세서 관련 성능 카운터의 최근 기록을 보려면 다음 보기를 사용하면 됩니다.

프로세서 성능 보기 시작

이 문제를 해결하기 위해 관리자는 다음 작업을 수행할 수 있습니다.

1. 서버에서 실행되는 각 프로세스에 대해 % Processor Utilization 카운터를 평가합니다. 이는 작업 관리자 또는 성능 모니터 스냅인을 사용하여 수행할 수 있습니다. 어느 프로세스가 가장 많은 리소스를 사용하고 있는지 확인하고 시간을 두고 모니터링하여 정상 성능 범위로 돌아오는지 여부를 확인하십시오. 성능이 정상적으로 돌아오지 않을 경우 응용 프로그램 관련 진단을 추가로 수행하여 문제를 해결하는 가장 적절한 방법을 확인해야 합니다.

2. 클라이언트 로드가 시간에 따라 증가하고 컴퓨터가 더 이상 요구를 만족시키지 못하는 경우 성능 모니터링 절차를 추가로 수행하여 기본 하드웨어 업그레이드를 통해 서버가 최적의 성능 범위로 돌아올 수 있는지 확인하십시오.

3. 응용 프로그램이 제품 결함으로 인해 올바르지 않은 상태가 된 경우에는 응용 프로그램을 다시 시작해야 할 수 있습니다. 문제가 지속되면 응용 프로그램 공급업체에 문의해야 합니다.

Element properties:

TargetMicrosoft.Windows.Server.10.0.OperatingSystem
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.Server.10.0.CPUUtilization.Monitortype
RemotableTrue
AccessibilityPublic
Alert Message
총 CPU 사용률이 너무 높음
Processor Information\\% Processor Time\_Total 성능 카운터의 임계값이 초과되었습니다. 임계값을 초과한 값은 {0}\% CPU 및 프로세서 큐 길이 {1}입니다.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.10.0.OperatingSystem.TotalCPUUtilization" Accessibility="Public" Enabled="true" Target="ServervNext!Microsoft.Windows.Server.10.0.OperatingSystem" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.Windows.Server.10.0.CPUUtilization.Monitortype" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.10.0.OperatingSystem.TotalCPUUtilization.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='PctUsage']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='QueueLength']$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="CPUUtilizationHigh" HealthState="Error"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="CPUUtilizationNormal" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<TargetComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</TargetComputerName>
<CPUPercentageThreshold>95</CPUPercentageThreshold>
<CPUQueueLengthThreshold>15</CPUQueueLengthThreshold>
<NumSamples>3</NumSamples>
<CounterName>% Processor Time</CounterName>
<ObjectName>Processor Information</ObjectName>
<InstanceName>_Total</InstanceName>
<AllInstances>false</AllInstances>
</Configuration>
</UnitMonitor>