用于监视计算机系统的设备和方法 技术领域 本发明涉及监视计算机系统的领域, 并且更具体而言涉及用于在操作者警告被驱 动时促使供给适当历史诊断数据的自动化设备和方法。
背景技术 监视应用可以配置成在某些被监视资源超过预定阈值或落到预定阈值以下时警 告终端用户。这些阈值典型地通过观察系统在一段时间周期内的使用而决定。这种方法暗 示着 :
1. 期待管理员对于长期运行或复杂的系统进行频繁的手动干预是不切实际的。 因 此警告并非被频繁地被驱动, 而是典型地仅当发生关键系统故障时才被驱动。
2. 由于性能或存储约束, 诊断信息的收集并非连续地发生。 当警告被触发时, 通常 仅存在很少的可用历史诊断数据。
这导致以下问题 :
1. 历史诊断数据的缺少使得问题诊断困难, 所以操作者不知道采取什么行为来解 决该问题。
2. 系统管理员倾向于在问题发生之后处理问题而不是提前识别潜在的问题。
申请人因而相信, 期望有一种在操作者警告被驱动时促使供给适当历史诊断数据 的自动化设备和方法。
发明内容 因此, 在第一方面, 本发明提供一种监视计算机系统的设备, 其可操作为用于向操 作者警告与临界资源消耗相关的故障, 且该设备包括 : 用于监视资源消耗的资源监视组件 ; 用于设置介于平均资源消耗值和临界资源消耗值之间的资源消耗阈值的阈值设置组件 ; 诊 断数据收集组件 ; 以及阈值跨越检测组件 ; 其中所述诊断数据收集组件响应于所述阈值跨 越检测组件检测到从所述阈值以下的资源消耗值到所述阈值以上的资源消耗值的阈值跨 越而可操作以开始诊断数据收集。
优选地, 所述诊断数据收集组件响应于所述阈值跨越检测组件检测到从所述阈值 以上的资源消耗值到所述阈值以下的资源消耗值的阈值跨越而可操作以停止诊断数据收 集。
优选地, 该设备还包括可操作为存储诊断数据的诊断数据存储组件。
该设备还可以包括诊断数据清除组件, 其可操作为响应于所述阈值跨越检测组件 检测到从所述阈值以上的资源消耗值到所述阈值以下的资源消耗值的所述阈值跨越并且 促使所述诊断数据收集组件停止诊断数据收集, 而清除所述诊断数据。
优选地, 所述阈值设置组件还包括规则引擎, 其用于确定介于所述平均资源消耗 值和所述临界资源消耗值之间的所述资源消耗阈值。
优选地, 所述规则引擎可操作为从所述资源监视组件接受多个输入且向其应用基
于概率的规则。
优选地, 所述阈值设置组件可操作为设置多个阈值, 每个阈值与一个诊断数据收 集级别相关, 且其中所述诊断数据收集组件可操作为开始和停止针对每个所述级别的诊断 数据收集。
本发明还提供一种监视计算机系统的方法, 其可操作为用于向操作者警告与临界 资源消耗相关的故障, 且该方法包括以下步骤 : 通过资源监视组件监视资源消耗 ; 通过阈 值设置组件设置介于平均资源消耗值和临界资源消耗值之间的资源消耗阈值 ; 通过阈值跨 越检测组件检测从所述阈值以下的资源消耗值到所述阈值以上的资源消耗值的阈值跨越 ; 响应于所述检测步骤, 通过诊断数据收集组件开始诊断数据收集。
优选地, 响应于所述阈值跨越检测组件检测到从所述阈值以上的资源消耗值到所 述阈值以下的资源消耗值的阈值跨越, 停止由所述诊断数据收集组件进行的诊断数据收 集。
该方法还可以包括存储诊断数据。
该方法还可以包括响应于所述阈值跨越检测组件检测到阈值从所述阈值以上的 资源消耗值到所述阈值以下的资源消耗值的所述阈值跨越并且促使所述诊断数据收集组 件停止诊断数据收集, 而清除所述诊断数据。
该方法还可以包括通过规则引擎确定介于所述平均资源消耗值和所述临界资源 消耗值之间的所述资源消耗阈值。
优选地, 所述规则引擎可操作为从所述资源监视组件接受多个输入且向其应用基 于概率的规则。
该方法还可以包括设置多个阈值, 每个阈值与某一级别的诊断数据收集相关, 且 其中所述诊断数据收集组件可操作为开始和停止针对每个所述级别的诊断数据收集。
在第三方面, 提供一种包括计算机程序代码的计算机程序, 当被装载到计算机系 统且在其上执行时, 该计算机程序代码促使所述计算机系统执行根据第二方面的方法步 骤。
本发明的优选实施方式因而有利地提供在操作者警告被驱动时用于促使供给适 当历史诊断数据的自动化设备和方法。
在本发明的实施方式中, 提供一种用于在操作者警告被驱动时提供历史诊断信息 的自动化系统。 介于资源平均级别和临界点之间的预定阈值被设置, 且当达到该阈值时, 该 应用自动激励其诊断收集工具, 保持收集有效, 直到被监视资源降到收集阈值以下。 如果故 障警告被驱动, 则将存在从被监视资源到达诊断阈值的初始时间一直到故障点的用于离线 分析的诊断信息。通过仅在问题即将来临时触发诊断收集, 性能 / 存储影响得以减小。 附图说明 现在将参考附图仅通过举例的方式描述本发明的优选实施方式, 附图中 :
图 1 以简化示意的形式示出根据本发明的一个实施方式的设备 ;
图 2 以流程图的形式示出根据本发明的一个实施方式的方法 ; 以及
图 3 以线状图的形式示出根据本发明的一个实施方式的临界设置以下的单触发 阈值设置。
具体实施方式
现在参考图 1, 示出用于监视计算机系统 101 的设备 100, 典型地是具有用于向操 作者警告与临界资源消耗相关的故障的工具的设备。设备 100 包括用于监视资源消耗的资 源监视组件 102 和用于设置介于平均资源消耗值和临界资源消耗值之间的资源消耗阈值 的阈值设置组件 104。 设备 100 还包括诊断数据收集组件 106 和阈值跨越检测组件 108。 诊 断数据收集组件 106 可操作为响应于阈值跨越检测组件 108 检测到从较低资源消耗值到较 高资源消耗值的阈值跨越, 开始诊断数据收集。
另外, 诊断数据收集组件 106 可操作为响应于阈值跨越检测组件 108 检测到从较 高资源消耗值到较低资源消耗值的阈值跨越, 停止诊断数据收集。
设备 100 还包括诊断数据存储组件 110 以及诊断数据清除组件 112, 该诊断数据存 储组件 110 可操作为存储诊断数据, 该诊断数据清除组件 112 可操作为响应于阈值跨越检 测组件 108 检测到从较高资源消耗值到较低资源消耗值的阈值跨越且促使诊断数据收集 组件 106 停止诊断数据收集而清除存储的诊断数据。
阈值设置组件 104 包括用于确定介于所述平均资源消耗值和所述临界资源消耗 值之间的资源消耗阈值的规则引擎 114。规则引擎 114 可操作为从资源监视组件 102 中接 受多个输入且向其应用基于概率的规则。基于概率的规则可以包括基于均值和偏差的规 则、 基于高斯分布的规则、 基于泊松分布的规则等。 现在参考图 2, 以流程图的形式示出用于监视计算机系统的方法或逻辑处理, 其可 操作为向操作者警告与临界资源消耗相关的故障。在开始步骤 200 处, 该处理开始, 且在步 骤 202 处, 阈值被设置。这个阈值可以是针对特定的诊断数据收集级别的阈值, 或它也可以 是单个阈值。测试步骤 204 确定是否需要更多级别。如果结果为肯定性的, 则该处理重复 步骤 202 和测试步骤 204。如果结果为否定性的, 则处理继续。在步骤 206 处, 开始资源消 耗的监视且系统继续正常运行。测试步骤 207 根据来自资源消耗的监视的一个或更多输入 确定阈值是否需要被设置为不同的值。如果结果为肯定性的, 则处理返回到步骤 202 以设 置阈值。如果为否, 则系统继续正常运行。测试步骤 208 测试资源消耗阈值已经被从较低 值向较高值向上跨越的指示。如果为否, 则作为重复循环继续步骤 206 和 208。如果测试 步骤 208 的结果显示资源消耗阈值已经被向上跨越, 则在步骤 210 处, 开始收集针对适当级 别的诊断数据且一直继续, 直到测试步骤 212 指示已经达到临界级别或阈值已经被向下跨 越。在步骤 214 处, 该处理停止收集针对该级别的诊断数据。这可以是单阈值系统中的唯 一级别, 或者可以是根据资源消耗值与临界值的近似度设置的特定数据收集级别。在步骤 216 处, 根据本发明的优选实施方式的处理完成。
本发明的实施方式因而提供用于确定问题何时可能发生且在操作者警告被驱动 之前激励诊断数据收集的自动化系统和方法。
本发明的优选实施方式计算资源平均级别, 且使用如下事实 : 警告典型地配置成 在资源超过临界点或落到临界点以下时发生。在介于平均值和临界点之间的预定阈值处, 应用自动激励其诊断收集工具, 使得它一直激励, 直到被监视资源落到用于收集的阈值以 下 / 以上。如果故障警告未被驱动, 则诊断数据或者被归档或者被删除。如果故障警告被 驱动, 则将存在从被监视资源到达诊断阈值的初始时间一直到故障点的用于离线分析的诊
断信息。通过仅在问题即将来临时触发诊断收集, 性能 / 存储影响得以减小
有利地, 当警告发生时, 相关诊断信息对于管理员可用, 且系统具有有效性能加强 调试选项的时间被最小化。不存在必须通过操作者的配置或手动交互以激励收集诊断信 息, 因为它在操作者警告被驱动之前通过系统自动地激励。
优选实施方式的附加优点在于 :
1. 它使用统计方法来确定何时开始诊断信息的收集 ; 以及
2. 当管理员配置操作者警告时, 系统还可以配置辅助 “弱” 警告以激励诊断信息。
优选实施方式通过选择用于诊断收集的 “触发” 阈值而工作。针对任何被监视资 源, 该触发阈值将介于 “平均” 和 “临界” 级别之间的某处。当到达诊断触发时, 诊断收集激 励并且保持, 直到所述值再次落到阈值以上 / 以下。
自动地选择触发阈值的方法利用了统计技术, 该统计技术允许在已知平均和标准 偏差时估算值的范围将出现的概率。 该系统将触发器设置为具有略高于操作者警告发生的 概率的值。 这产生最优触发值, 除非用户警告将要被驱动否则该最佳触发值不轻易被驱动。 另外, 它意味着终端用户可以被给予有多频繁地驱动用户警告以及在运行系统上将多频繁 地激励调试收集的估算值。仅向用户值增加或减小设置值且使用其作为触发将是低效的, 因为在该触发和用户警告之间的增量的大小取决于关于被监视资源的值的分布。 存在估算概率值的若干统计方法。这些方法在复杂度方面有所不同。最简单的方 法在均值小于触发时从用户警告值减去标准偏差分数。如果均值高于触发, 它向用户警告 增加标准偏差分数。这是最简单和最小计算代价的选项, 且适合大范围的数据。其他方法 包括 : 应用用于高斯 / 正态分布或泊松分布的公式以明确地计算触发值出现的概率, 以小 的量来增加该概率, 以及应用等式的逆以计算触发值。
图 3 示出向随机数据应用正态分布。图表上示出的线是级别临界点和调试触发。 在该示例中, 系统将调试触发阈值设置为与用户警告相比更高的概率。调试数据收集在两 个线之间的点处将是有效的。 在该示例情况下, 在调试触发有效的所有情形中, 用户警告随 后立刻被驱动。调试追踪在大部分时间是关闭的。这证明了概率分布在发现何时应用调试 追踪时可能十分有效。可以看出, 调试收集总是在警告被驱动之前不久时启动。在示例数 据中, 该系统成功预测用户警告被驱动, 且调试收集仅在用户警告之前不久时被激励。
本领域技术人应当清楚, 可以使用各种其他统计方法 ( 诸如其他概率分布或标准 偏差值分数 ), 得到类似的有利结果。
在另一改进实施方式中, 可以预期具有附加阈值以提供对诊断数据的供应的更精 细调节的控制。
不同的诊断数据收集的细节级别对于系统性能具有相应的影响——诊断得越细, 对于系统的影响越大。通过根据问题的严重性调节追踪级别, 这提供比简单地开和关更精 细粒度的控制。
根据被研究的问题的类型或软件的复杂度, 不同的诊断级别 / 细节将给出用以诊 断问题的所需信息——知道何时激励哪个级别是手动任务。追踪的细节越多, 识别问题的 可能性越大, 但是系统影响的开销也越大。
优选改进实施方式提供用于基于预定统计值动态地调节诊断级别的方式。 使用资 源使用率的统计分析, 可以确定合适的阈值, 在该阈值处需要收集不同级别的资源诊断数
据。如果资源使用率落到阈值以下, 则诊断数据的级别也降低。
可以定义多个阈值, 而不是像上述第一实施方式那样定义用于诊断触发的单个阈 值。 这些阈值可以对应于不同严重性的问题 : 低严重性的问题将激励较低诊断细节, 而较严 重问题将能够实现较大级别的诊断细节。通过提供针对诊断级别的动态设置, 将总是有适 当信息可用于所经历的 “问题” 级别, 而无需采取 “全有或全无” 的方法。
优选实施方式通过使得一个资源 ( 或多个资源 ) 被监视且设置何时告知操作者存 在问题的合适 “临界” 阈值而工作。
通过手动地或者通过统计方式来分析 “典型” 工作负荷, 可以定义资源使用率的 “正常” 范围。当资源超出 “正常” 范围向临界级别移动时, 可以设置不同的诊断触发。这些 触发的确切设置取决于可用诊断级别的粒度如何以及在哪里定义触发。
下面的工作示例示出了在其中使用工作负荷的统计分析来设置触发的系统。
产品定义了 5 个不同诊断级别 : 0- 错误, 1- 警告, 2- 告知, 3- 详细, 4- 调试。在正 常工作负荷期间, 级别 0 总是有效。产品使用套接字在网络上通信, 且例如问题在潜在套接 字泄露时发生。
设置监视资源 sorCount。在临界点, 系统将用完套接字, 临界级别是 MAXSOC。套 接字使用的正常范围是 socmin- > socmax——MAXSOC 和 socmax 之间的差异作为 socAvail 给出。 在 socmax 和 MAXSOC 之 间 的 某 处, 设 置 针 对 各 种 诊 断 级 别 的 触 发。 级 别 1 在 socmax+20 %的 socAvail 处激励 ; 级别 2 在 socmax+40 %的 socAvail 处激励 ; 级别 3 在 socmax+60%的 socAvail 处激励 ; 且级别 4 在 socmax+75%的 socAvail 处激励。如果使用 的套接字的数目达到预定阈值, 则该级别的诊断数据被收集。 如果套接字的数目降低, 则诊 断级别相应地减小, 直到回到正常级别。
本领域技术人员应当清楚, 本发明的优选实施方式的全部或部分方法可以适当地 或有用地以包括布置为执行方法步骤的逻辑元件的逻辑设备或多个逻辑设备来实施, 这些 逻辑元件可以包括硬件组件、 固件组件或其组合。
本领域技术人员同样应当清楚, 根据本发明的优选实施方式的全部或部分逻辑布 置可以适当地以包括执行方法步骤的逻辑元件的逻辑设备来实施, 且这些逻辑元件可以包 括在例如可编程逻辑阵列或专用集成电路中的诸如逻辑门之类的组件。这种逻辑装置还 可以以使能元件来实施, 这些使能元件用于例如使用虚拟硬件描述符语言在这种阵列或电 路中临时或永久地建立逻辑结构, 该逻辑结构可以使用固定或可传输载体介质来存储和传 输。
应当意识到, 上述方法和布置还可以适当地以运行在一个或更多处理器 ( 在图中 未示出 ) 上的软件来全部或部分地实施, 且软件可以以诸如磁或光盘等之类任何合适的数 据载体 ( 在图中也未示出 ) 上携带的一个或更多计算机程序元件的形式来提供。用于数据 传输的信道同样可以包括所有描述的存储介质以及诸如有线或无线信号传送介质的信号 传送介质。
该方法一般被构想为导致所需结果的自相一致的步骤序列。 这些步骤需要对物理 量的物理操纵。通常, 尽管并不必须地, 这些量采用能够被存储、 传输、 组合、 比较和以其他 方式被操纵的电信号或磁信号的形式。有时原则上由于经常使用的原因, 方便地将这些信
号表示为位、 值、 参数、 项目、 元素、 对象、 符号、 字符、 术语、 数字等。 然而应当注意, 所有这些 术语或类似术语与适当物理量相关且仅仅是应用于这些量的方便的标记。
本发明还可以适当地实施为与计算机系统一同使用的计算机程序产品。 这种实施 方式可以包括一系列计算机可读指令, 这些计算机可读指令固定在诸如计算机可读介质的 有形介质上 ( 例如, 磁盘、 CD-ROM、 ROM 或硬盘 ), 或者可以通过有形介质 ( 包括但不限于光 学或模拟通信线路 ) 或使用无线技术 ( 包括但不限于微波、 红外或其他传输技术 ) 无形地 经由调制解调器或其他接口装置而传输到计算机系统。 这一系列计算机可读指令实施此处 在前面描述的所有或部分功能性。
本领域技术人员应当理解, 这种计算机可读指令可以以各种编程语言编写以用于 与很多计算机架构或操作系统一同使用。而且, 这些指令可以使用当前或未来的任何存储 技术 ( 包括但不限于半导体、 磁、 或光学 ) 来存储, 或使用当前或未来的任何通信技术 ( 包 括但不限于光学、 红外或微波 ) 来传输。可以预期, 这种计算机程序产品可以分布为具有辅 助打印或电子归档的可移动介质, 例如紧缩套装软件, 其例如使用计算机系统预装载到系 统 ROM 或固定磁盘上, 或通过网络 ( 例如因特网或万维网 ) 从服务器分发到电子公告板。
在一个备选中, 本发明的优选实施方式可以以部署服务的计算机实现方法的形式 实现, 该方法包括以下步骤 : 部署计算机程序代码, 当部署到计算机基础设施且在其上执行 时, 该计算机程序代码可操作以促使所述计算机系统执行方法的所有步骤。
在另一备选中, 本发明的优选实施方式可以以其上具有功能数据的数据载体的形 式实现, 所述功能数据包括功能计算机数据结构, 当装载到计算机系统且由此在其上操作 时, 该功能计算机数据结构使得所述计算机系统执行该方法的所有步骤。