Send Queue \% Used

Microsoft.SystemCenter.HealthService.Performance.SendQueuePercentUsedMonitor (UnitMonitor)

This monitor measures the Health Service Management Groups\Send Queue \% Used counter for the Health service.

Knowledge Base article:

摘要

This monitor measures the Health Service Management Groups\Send Queue % Used and generates the following states:

監視狀態

Send Queue % Used Threshold

重大

60 %

原因

這可能是由此 System Center 管理健全狀況服務連線到其父系管理伺服器的連線頻寬過低或延遲過長所造成。 這也可能是收集的資料較父系管理伺服器處理量更多的規則所造成,尤其是當父系管理伺服器有多個向其報告的代理程式傳送大量資料時。

解決方式

如果從 System Center 管理健全狀況服務到父系管理伺服器的網路連線已飽和,請連絡您的網路系統管理員。 如果發生這種情形,您可能需要升級您的網路以容納流量。

如果您無法升級網路 (例如您的 System Center 管理健全狀況服務或閘道伺服器位於遠端的分公司),您可以停用不必要的集合規則。 以下為您可以停用的規則類型及停用相關影響的清單:

規則類型

規則用途

停用影響

效能集合

收集效能資料到操作資料庫、資料倉儲或兩者

當效能集合規則停用時,任何顯示該效能資料之檢視將不再有資料可供檢視。 如果規則是收集資料到資料倉儲,依存該效能的報表將不再呈現任何資料。

事件集合

收集事件資料以供診斷。 在某些情況下,為事件產生警示可能沒有幫助,但對於研究疑難排解或近即時疑難排解則很有幫助。

當事件集合規則停用時,任何顯示該事件資料之檢視將不再有資料可供檢視。 如果規則是收集資料到資料倉儲,依存該事件的報表將不再呈現任何資料。

最後,如果您仍需要該資料,另一個可以於系統中實作以嘗試減少網路傳輸資料量的選項,是使用最佳化的效能計數器集合規則和事件彙總集合規則。 下表摘要列出了這些選項的優點並說明資料的摘要方式。

規則類型

優點

資料摘要方式

最佳化效能集合規則

Only sends the performance data sample if it deviates from the last sample within some percentage. E.g., if the last sample was 42, and the rule was configured to only collect to a new sample with a tolerance of 10%, the next sample will need to 42 +/- 4.2 (e.g. next sample needs to be greater than 46.2 or less than 37.8)

因為只有超過設定容錯度的效能資料會傳送到操作資料庫或資料倉儲,因此資料會較不精確。 您的容錯度愈大,精確度就會愈低。

彙總事件集合規則

此類型的事件集合規則會在其所設定的任一參數與上次事件有差異時傳送資料。 例如,您可以設定彙總集合規則針對下列項目相同的事件進行彙總:

  • 事件來源

  • 事件識別碼

  • 來源電腦

  • 描述

然後您可以設定彙總這些事件的時間範圍 (例如 10 分鐘)。 如果以上準則於該 10 分鐘時間範圍內比對到任何相符事件,僅會傳送 1 個事件並遞增 [重複計數] 內容。 如果此事件於單一代理程式上重複發生,代表 24 小時僅會傳送最多 144 個事件,較實際記錄到事件記錄檔中的事件數目少很多。

您需要注意進行彙總的事件參數和內容。 例如在描述上進行設定,如果事件描述通常為唯一 (例如包含使用者名稱),您將仍會收到許多傳送的事件。 在此例中,您需要彙總代表使用者名稱欄位的事件參數。

此外,彙總時間範圍太長會有以下影響:

  • [事件檢視] 或 [報表] 中事件的顯示會延遲 (由於資料需要進行彙總到彙總時間範圍結束為止)。

  • 代理程式上的資源使用量會較高。 如果使用的彙總規則很少,則並不會造成影響。 如果使用大量此類規則,加上較長的彙總時間範圍,資源使用量會相對增加。

請參閱產品說明,或移至主控台的 [撰寫中] 位置,建立上述規則類型。

Element properties:

TargetMicrosoft.SystemCenter.HealthService
Parent MonitorMicrosoft.SystemCenter.HealthService.PerformanceHealthRollup
CategoryPerformanceHealth
EnabledTrue
Instance NameHealth Service Management Groups
Counter NameSend Queue \% Used
Frequency60
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
Alert Message
{0}: 此系統的健全狀況服務傳送佇列即將填滿
When the System Center Management Health Service is receiving data faster than it can send that data out, it will begin queuing the excess data. The queue has a fixed size and if that is reached, then the System Center Management Health Service will start grooming data out of the queue. When this alert was generated, the "Send Queue \% Used" counter for this system was {0}. Refer to the knowledge for more details on possible causes and troubleshooting steps.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.HealthService.Performance.SendQueuePercentUsedMonitor" Accessibility="Public" Enabled="true" Target="SCLibrary!Microsoft.SystemCenter.HealthService" ParentMonitorID="Microsoft.SystemCenter.HealthService.PerformanceHealthRollup" Remotable="true" Priority="Normal" TypeID="Performance!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.HealthService.Performance.SendQueuePercentUsedMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="BelowThreshold" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
<OperationalState ID="OverThreshold" MonitorTypeStateID="ConditionTrue" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Send Queue % Used</CounterName>
<ObjectName>Health Service Management Groups</ObjectName>
<InstanceName>$Target/ManagementGroup/Name$</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>60</Frequency>
<Threshold>90</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>5</NumSamples>
</Configuration>
</UnitMonitor>