Agent processor utilization

Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor (UnitMonitor)

모든 에이전트 프로세스를 모니터링하여 프로세서 시간이 너무 오래 걸리는 에이전트의 잠재적인 문제를 확인합니다.

Knowledge Base article:

요약

이 모니터는 Operations Manager 에이전트 및 관련 프로세스의 총 CPU 사용률을 계산하고 CPU 사용률이 특정 연속 샘플 수에 지정된 임계값을 초과할 경우 경고를 생성합니다.

모니터의 기본 스크립트는 Operations Manager 에이전트 프로세스(HealthService.exe), 해당 자식 모니터링 호스트 프로세스(MonitoringHost.exe) 및 이러한 모니터링 호스트 프로세스의 자식 프로세스(cscript.exe, PowerShell.exe 등)의 CPU 사용률을 찾아 샘플링하는 방식으로 작동합니다. 스크립트는 계산을 세 번 실행하고 세 개의 연속 샘플 수의 평균을 출력하며, 모니터에서 이를 사용하여 위험 또는 정상 상태를 결정합니다.

구성

재정의를 사용하거나 다음 매개 변수를 사용자 지정하여 이 모니터의 기본 동작을 변경할 수 있습니다.

기본적으로 이 모니터는 모든 관리 서버에 대해 사용하지 않도록 설정되어 있습니다.

원인

여러 Operations Manager 에이전트 프로세스의 과도한 CPU 사용률은 에이전트나 해당 기본 종속 요소 중 하나가 제대로 작동하고 있지 않음을 나타낼 수 있습니다. 에이전트 및 해당 기본 종속 요소가 올바르게 업데이트된 경우 모니터링되는 시스템에서 에이전트가 과도하게 사용됩니다. 이 문제는 새 관리 팩 배포와 같이 관리 그룹의 최신 업데이트로 인한 일시적인 문제일 수 있습니다. 또는 에이전트가 실제 과도하게 로드되고 있으므로 이 문제가 발생할 수 있으며, 이 경우 조정이 필요할 수 있습니다.

해결 방법

에이전트 및 해당 기본 종속 요소가 올바르게 작동하는지 확인하려면 다음을 확인합니다.

구성을 확인한 후에도 문제가 지속되면 보다 자세한 조사를 통해 CPU 사용률을 높이는 요소를 파악해야 합니다. 다음 단계를 조합하여 추가 조사를 수행합니다.

원인이 확인되면 다음 단계 중 하나를 수행하여 문제를 해결할 수 있습니다.

위의 모든 단계로도 문제가 해결되지 않으면 Microsoft 기술 지원 서비스(http://support.microsoft.com/)에 문의하세요.

추가

이 모니터에는 CPU 사용률 샘플링을 다시 실행하는 관련 진단 작업인 "에이전트 프로세서 사용률 수집 진단"이 있습니다. 이 진단 작업은 기본적으로 사용하지 않도록 설정되어 있습니다.

운영 콘솔에 CPU 사용률 샘플링을 다시 시작하는 "에이전트 프로세서 사용률 가져오기" 작업도 있습니다. "에이전트 프로세서 사용률 가져오기" 작업을 실행하는 경우 샘플 매개 변수 개수 및 시간 제한을 설정할 수 있습니다. 작업은 결과 테이블을 반환합니다. '에이전트 프로세서 사용률' 가져오기 작업을 실행합니다.

Element properties:

TargetMicrosoft.SystemCenter.HealthService
Parent MonitorMicrosoft.SystemCenter.HealthService.PerformanceHealthRollup
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.HealthService.SCOMpercentageCPUTimeCounterMonitorType
RemotableFalse
AccessibilityPublic
Alert Message
Operations Manager 에이전트 프로세스의 프로세서 시간이 너무 오래 걸림
{0} 컴퓨터에서 모든 에이전트 프로세스의 총 프로세서 사용률이 여러 샘플에 걸쳐 {1}의 임계값을 초과했습니다.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor" Accessibility="Public" Enabled="onEssentialMonitoring" Target="SCLibrary!Microsoft.SystemCenter.HealthService" ParentMonitorID="Microsoft.SystemCenter.HealthService.PerformanceHealthRollup" Remotable="false" Priority="Normal" TypeID="Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeCounterMonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.HealthService.SCOMpercentageCPUTimeMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</AlertParameter1>
<AlertParameter2>$Data/Context/SampleValue$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="CPUTimeOverThreshold" MonitorTypeStateID="OverThreshold" HealthState="Error"/>
<OperationalState ID="CPUTimeUnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>321</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<SyncTime>00:00</SyncTime>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<Threshold>25</Threshold>
<ConsecutiveSampleCountCritical>6</ConsecutiveSampleCountCritical>
<ConsecutiveSampleCountHealthy>3</ConsecutiveSampleCountHealthy>
</Configuration>
</UnitMonitor>