(已過時) 監視主機的私用位元組控制碼計數

Microsoft.SystemCenter.ManagementServer.MonitoringHost.PrivateBytesThreshold (Rule)

當監視主機處理序超過 Process\Private Bytes 閾值時,重新啟動健全狀況服務。

Knowledge Base article:

摘要

此規則預設為停用,因為它已經被監視所取代。

此規則會測量 MonitoringHost.exe 處理序所有執行個體的 [Process\Private Bytes] 使用量。 如果其超過設定的閾值,就會產生警示。

依據設定 System Center 管理健全狀況服務執行的角色,會有多種不同閾值。 以下是預設閾值摘要:

System Center 管理健全狀況服務角色

私用位元組閾值

代理程式

100 MB

管理伺服器

1,500 MB

以下是會嘗試重新啟動 System Center 管理健全狀況服務的回應之設定:

System Center 管理健全狀況服務角色

重新啟動回應行為

代理程式

已啟用

管理伺服器

無重新啟動回應

原因

可能原因的簡短摘要如下:

從設定此 System Center 管理健全狀況服務的所有管理組件載入太多規則與監視。

設定錯誤的規則或監視收集太多資料或處理太多資料 (例如效能計數器集合規則會每 1 秒收集一次資料)

這可能是由執行多個管理組件的 System Center 管理健全狀況服務所造成。 每個管理組件可能有許多使用少量資源的監視。 由於每個 MonitoringHost.exe 執行個體具有總計達數千個規則與監視的多個管理組件,可能會消耗更多資源。

視 System Center 管理健全狀況服務所執行的監視類型而定,這是此 System Center 管理健全狀況服務可能會發生的狀況。

另一個原因可能是有一個或多個規則與監視不符合某些最佳作法。 例如嘗試每 1 秒收集一次效能資料的效能計數器規則。 如果如此設定的規則與監視太多,會導致 monitoring host.exe 處理序消耗更多資源。

解決方式

此規則於管理伺服器執行的預設動作為警示。

如果您認為此代理程式執行之監視數量所使用的資源很適當,可以覆寫閾值或停用復原。

如果 System Center 管理健全狀況服務及其關聯的 MonitoringHost.exe 處理程序仍然消耗過多資源,您可以重新啟動 System Center 管理健全狀況服務的 Windows 服務以緩和此問題。

Element properties:

TargetMicrosoft.SystemCenter.ManagementServer
CategoryMaintenance
EnabledFalse
Instance NameProcess
Counter NamePrivate Bytes
Frequency120
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
監視主機私用位元組閾值警示訊息 (管理伺服器)
監視主機私用位元組閾值警示訊息

Member Modules:

ID Module Type TypeId RunAs 
DataSource DataSource System.Performance.DataProvider Default
CDAveragerThreshold ConditionDetection System.Performance.AverageThresholdCondition Default
Alert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SystemCenter.ManagementServer.MonitoringHost.PrivateBytesThreshold" Enabled="false" Target="SCLibrary!Microsoft.SystemCenter.ManagementServer" ConfirmDelivery="false" Remotable="true" Priority="High" DiscardLevel="100">
<Category>Maintenance</Category>
<DataSources>
<DataSource ID="DataSource" TypeID="Performance!System.Performance.DataProvider">
<CounterName>Private Bytes</CounterName>
<ObjectName>Process</ObjectName>
<InstanceName>MonitoringHost*</InstanceName>
<Frequency>120</Frequency>
</DataSource>
</DataSources>
<ConditionDetection ID="CDAveragerThreshold" TypeID="Performance!System.Performance.AverageThresholdCondition">
<NumSamples>5</NumSamples>
<Threshold>1610612736</Threshold>
<Operator>Greater</Operator>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.SystemCenter.ManagementServer.MonitoringHost.PrivateBytesThreshold.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/InstanceName$</AlertParameter1>
<AlertParameter2>$Data/Value$</AlertParameter2>
</AlertParameters>
<Suppression>
<SuppressionValue>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>