Send Queue \% Used

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

此监视器测量运行状况服务的 Health Service Management Groups\Send Queue \% Used 计数器。

Knowledge Base article:

摘要

此监视器测量 Health Service Management Groups\Send Queue % Used 并生成以下状态:

监视器状态

Send Queue % Used 阈值

严重

60 %

原因

这可能是由此 System Center 管理运行状况服务到其父管理服务器的带宽较低或连接延迟较高引起的。这也可能是由于规则收集的数据多于父管理服务器可以处理的数据;尤其是当父管理服务器有很多向其报告的代理都发送大量数据造成的。

解决方法

与你的网络管理员联系确认从 System Center 管理运行状况服务到父管理服务器的网络连接是否已饱和。如果是这样,你可能需要升级网络以容纳此流量。

如果无法升级网络(例如你的 System Center 管理运行状况服务或网关服务器位于远程分支机构),你可以禁用不必要的连接规则。以下是你可以禁用的规则类型列表,以及禁用后的影响:

规则类型

规则用途

禁用后的影响

性能收集

将性能数据收集到操作数据库和/或数据仓库

当性能收集规则被禁用时,显示此性能数据的任何视图将不再有可查看的数据。如果规则将数据收集到数据仓库,依赖于此性能的报表将不再呈现任何数据。

事件收集

收集事件数据供诊断。在某些情况下,对事件提出警报可能没有帮助,但对法律性疑难解答或接近实时的故障排除有帮助。

当事件收集规则被禁用时,显示此事件数据的任何视图将不再有可查看的数据。如果规则将数据收集到数据仓库,依赖于此事件的报告将不再呈现任何数据。

最后,如果你仍然需要此数据,可在系统中实施以尝试减少网络上发送的数据量的另一个选择是使用优化后的性能计数器收集规则和事件合并收集规则。下表概述了其益处,并说明了数据汇总方式。

规则类型

益处

数据汇总方式

优化性能收集规则

仅发送与上一个样本的偏离在一定百分比以内的性能数据样本。例如,如果上一个采样是 42,规则配置为仅收集容差为 10% 的新样本,则下一个采样需要为 42 +/- 4.2(即下一个采样需要大于 46.2 或小于 37.8)

由于仅超过配置容差的性能数据被发送到操作数据库或数据仓库,数据的精确性将会下降。容差越大,精确度越低。

合并事件收集规则

此类事件收集规则仅在其配置的一个参数与上一个事件不同时才发送数据。例如,你可以配置合并收集规则来合并以下项相同的事件:

  • 事件来源

  • 事件 ID

  • 源计算机

  • 描述

然后,你可以配置时间范围来合并这些事件(如 10 分钟)。如果在 10 分钟的时间段内所有事件都满足上述条件,则只有一个事件被发送,其“重复次数”属性将会增加。如果此事件在一个代理上频繁发生,这意味着在 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}: 此系统上的运行状况服务发送队列将要填满
当 System Center 管理运行状况服务接收数据的速度比发出该数据的速度快时,它将开始对过量数据进行排队。队列具有固定大小,如果达到该大小,则 System Center 管理运行状况服务会开始将数据清理出队列。生成此警报时,此系统的 "Send Queue \% Used" 计数器为 {0}。有关可能的原因和疑难解答步骤的更多详细信息,请参考相关知识。
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>