用于自适应地收集性能和事件信息的系统和方法

文档序号:6568160阅读:153来源:国知局
专利名称:用于自适应地收集性能和事件信息的系统和方法
技术领域
本发明涉及自适应地收集计算机系统中的信息的方法和装置。更 具体而言,在本发明的一个方面中,数据可以在被存储在永久性存储 器中之前被有效地聚集和压缩。
背景技术
计算机系统经常需要收集性能和/或事件信息。性能信息可以包括但不限于CPU使用、响应时间、存储器使用、1/0带宽等的量度。系统可以监视各种事件。例如,网络服务器经常记录所接收的http请求。也可以登记(log)数据库事务。系统可以记录用于调试目的或用 于评价程序运行的信息。信息登记产生开销。将信息存储在磁盘上则消耗1/0带宽并需要 上下文切换。性能可能受到不利影响。此外,可能消耗大量磁盘空间。 因为登记信息的重要性以及登记太多信息可能导致的高开销,所以需 要更高效的方法来收集性能和事件信息。例如,几种工具可以用来获得有关计算机系统的性能信息。Unix 操作系统(www.unix.org )具有诸如/proc这样的特征用于获得性能 信息。Microsoft (www.microsoft.com )的Windows操作系统也具有 一些特征用于提供性能信息。IBM提供了 一些工具用于通过其Tivoli 系列软件产品(www.tivoli.com)来收集有关计算机系统的性能信息。这些现有解决方案的关键问题在于,它们可能导致太多信息被收 集。这可能导致(对于CPU和存储器二者来说)太多的开销用于收 集性能信息。发明内容本发明的一个目的是自适应地收集事件信息以减小开销。更具体而言,在本发明的一个方面,提供方法以平衡CPU和空间开销。本发明的其他具体方面包括诸如将多个实体聚集为更少量的实 体并压缩数据以减小被存储的信息量的技术。因此,在包括第一计算节点、和第二计算节点与存储设备中至少 一个的系统中,本发明提供了一种用于将信息从第一计算节点传递到 存储设备和第二计算节点中至少一个的方法。通过本发明,监视计算 节点以收集可用资源的至少一个估计,并基于该估计修改数据量。然 后,修改的数据被发送到存储设备和第二计算节点中至少一个。本发明还提供确定用于聚集数据的最佳分批大小,其中,对于一 些分批大小,对发送成批信息到永久性存储器以及对丟失成批数据估 计成本。然后,基于这些成本的总和,从这些不同的分批大小中选择 最佳分批大小。本发明还提供数据的选择性压缩,其中确定一些压缩算法中哪些 不导致超过可用资源的开销。然后,选择所确定的算法其中之一来最 大化压缩。


图1显示具有本发明特征的系统,其中一个或多个应用进程与单个j言息、登i己器(information logger )通4言。图2显示具有本发明特征的另一系统,其中不同的信息登记器与不同的应用进程相关联。图3显示根据本发明的具有相关性能监视器的处理器。图4显示根据本发明的用于自适应地收集性能和事件信息的方法。图5显示根据本发明的用于确定分批大小的方法。图6显示根据本发明的用于压缩信息的方法。图7是示出可以实现本发明的计算系统的硬件实现的框图。
具体实施方式
图l显示了具有本发明特征的系统。 一个或多个应用进程ll与信息登记器10通信,其中信息登记器10将信息记录在永久性存储器 12中。磁盘、DASD和CD是永久性存储器的实例。应用进程例如可以包括正运行的程序,对该程序监视性能统计, 诸如CPU使用、响应时间、1/0带宽、网络带宽等等。监视所得到的 统计、诸如CPU使用然后被发送到信息登记器。例如可以利用各厂 家所提供的标准编程语言(例如,Java、 C、 C++、汇编、机器语言 等)以软件实现登记器。该实例中本发明的一个方面是确定多少信息 被发送到信息登记器以记录在永久性存储器中或者信息以什么形式 被发送到信息登记器以记录在永久性存储器中。图2显示了具有本发明特征的另一系统。不同的信息登记器21 与不同的应用进程20相关联。这与图1中单个信息登记器与多个应 用进程相关联的情况相反。可以由性能监视器31监视可能正运行应用进程的处理器30,如 图3所示。除了CPU之外,性能监视器31可以可选地监视1/0、网 络、和/或磁盘。例如可以利用各厂家所提供的标准编程语言(例如,Java、 C、 C++、汇编、机器语言等),以软件实现性能监视器。在本发明的一个实例中,性能监视器可以将来自在处理器30上 运行的应用进程(诸如正运行的计算机程序)的性能结果(诸如CPU 使用)发送到信息登记器,信息登记器然后选择什么结果要被存储在 永久性存储器中。图4显示了本发明的操作方法的流程图。在步骤40中,至少一 个应用程序正运行在至少一个处理器30上,并且周期地发送信息到 永久性存储器12。发送信息到永久性存储器的开销有时可能^f艮大。图 3的性能监视器31可以在步骤40中被用来确定用于存储信息的开销 量。当确定用于存储信息的开销量很大时,处理可以前进到步骤43。在步骤43中,系统减小用于存储信息的开销。可以使用几种方法中 至少一种来实现这个目的周期地收集信息,其中可以通过以更不频繁的间隔收集信息来减 小开销。当系统正收集可以表示例如系统的性能特性的数字序列时,在永 久性存储器中维持几个值的平均数,而不是每次确定一个新值时就存 储新的数字。有时,其将永久存储几个值的平均数。可以在步骤43 中增加在存储到永久性存储器之前被平均的值的数量,以降低开销。存储自前一个平均数被存储在磁盘上以来的数字的移动平均数, 而不是其平均数。例如,假设系统在将一个数字存储到磁盘上之前接 收了 5个新的数字。最后50个数字的移动平均数表示最后50个数字 的平均数。存储该移动平均数,而不是存储自前一次写入磁盘以来所 接收的5个数字的简单平均数。在将所有值存储到磁盘上之前在主存储器中保持几个值。与只要 接收到就存储每个单独值相比,这种批处理对永久性存储器的更新可 以大大降低开销。该方法的缺点在于没有立刻被存储在磁盘上的信息 在机器故障的情况下可能被丢失。可以基于故障的可能性决定是否批 处理对磁盘的更新。当步骤40确定系统具有足够的资源可用时,可以选择降低数据 减少量并收集更多数据(步骤42)。这导致永久性存储器12中所保 持的信息的更高精确度。本发明包括以下用于确定是否批处理对磁盘的更新,并且如果确 定要批处理,确定批应当多大的方法。为故障情况下的信息丢失分配 成本。例如,成本函数可以是Cl(s) = a *p* s.其中a是常数,p是故障概率,s是在整个批被写到磁盘之前积 累的信息量(即,分批大小)。这是简单的成本函数,其中成本与分 批大小成线性关系。也可以是更复杂的函数。例如,成本函数可以包 括除了分批大小之外的其他参数,诸如丟失的具体信息。图5中的步骤51显示了为故障情况下的信息丢失确定成本函数。Cl是一个这样 的例子。步骤50和51的顺序可互换。步骤50和51也可以同步执行。也可以为用于发送信息到永久性存储器的开销分配成本。例如, 成本函数可以是C2(S〉-b^^S:,其中b是某个常数,r是发送信息到 磁盘的平均速率,s是分批大小。也可以是更复杂的函数。例如,成 本函数可以是动态的并且依赖于系统上的负载。当1/0子系统被加栽 很重时,将更多信息发送到永久性存储器可能使系统过载。这会反映 在成本函数中,其中当i/o系统过载时,成本函数将倾向于延迟对永 久性存储器的更新。图5中的步骤50显示了为发送信息到永久性存 储器确定成本函数。C2是图5中的步骤50的一个实例。总成本C3是Cl和C2的总和<formula>formula see original document page 9</formula>然后,系统可以确定使C3最小化的s的值,该值得自于将成本 函数应用于s。来自第一年微积分的标准技术可以被用于使C3最小 化。也可以使用其他方法(例如,简单的近似)来使C3最小化。图 5中的步骤52显示了挑选使总成本函数最小化的分批大小的步骤。最 终结果是,系统选择平衡对高性能的需求以及对使系统故障情况下信 息丢失最小化的需求的用于发送信息到磁盘的分批大小s。用于故障情况下信息丢失的成本函数可以考虑故障概率和/或故 障情况下的信息丢失,并随之增长。故障情况下的信息丟失经常与期 望的分批大小成正比。用于发送信息到磁盘的成本函数可以随着发送信息到磁盘的速率而增长。其也可以随着分批大小的增大而降低。用于发送信息到远端节点的成本函数可以随着发送信息到远端 节点的速率而增长。其也可以随着分批大小的增大而降低。在一个可选实施例中,信息可以被发送到远端节点,而不是发送 到磁盘。在该情况下,成本函数C2或类似的成本函数可以表示发送 更新到远端节点的成本。在其他情况下,创建批的成本(例如,CPU、磁盘、1/0等中)可以依赖于分批大小。设C^(s)为创建大小为s的批的成本。在许多 情况下,相比于与存储数据到磁盘上和/或发送数据到远端节点相关联 的成本,C《(s)不值一提,在该情况下,其可以被忽略。但是,在C《(s》重要的情况下,我们具有以下成本等式<formula>formula see original document page 10</formula>其中C3&)是总成本,Cl'(s)是用于故障情况下信息丟失的成本,CT(s)是分配给发送信息到永久性存储器和/或到远端节点的成本。本发明的另一关键方面是在发送信息到磁盘之前选择性地压缩 信息。压缩信息减小了消耗的I/O带宽以及磁盘空间使用。在负面方 面,其可以导致更多的CPU开销。因此,系统需要平衡对低处理开 销的需求和与磁盘空间使用相结合的I/O带宽。图4的块41示出了压缩。图6示出了用于选择性地执行压缩的 优选方法。系统具有至少一个、但通常是多个对其可用的压缩算法(步 骤60)。注意,在整个说明书中,术语"压缩算法,,可以被解释为"压 缩算法的实现"。对于每一个压缩算法,系统具有其开销、其保真度 (即,如果压缩算法导致信息丢失,丢失的程度)、和其可能导致的 大小减小量的估计值。系统确定可用于压缩的CPU资源r(步骤61 )。 性能监视器31可以帮助该确定。当系统具有一批数据要写入永久性 存储器时,数据可以具有与其相关的参数B来指示可以容忍的丢失程 度。如果不存在这样的参数,则将只容忍无损压缩算法。从不导致比 B更多的丟失并且不预期导致比r更多的CPU资源的可用压缩算法 中,使用导致最小压缩数据的压缩算法(步骤62)。在最差情况下, 不执行压缩。保真度阈值例如可以是原始字节的99.5%被保留。 作为可选步骤,如果在发送数据到永久性存储器时不执行压缩或执行不足量的压缩,则系统在压缩数据之前可以等待,直到系统具有足够的资源执行压缩。已经在减小用于存储信息到永久性存储器的开销的上下文中描述了本发明。 一个明显的概括是使用本发明来减小将信息从一 个计算节点传递到另一计算节点的I/O带宽和开销。图7是显示其中可以实现本发明的计算系统700的硬件实现的框 图。例如,图7的示例性结构可以用于实现信息登记器、永久性存储 器、应用进程、性能监视器等等,如本申请中以上所述。此外,应当理解,各个组件/步骤可以在一个或多个这样的计算 机系统上实现。如果在分布式计算系统上实现,则各个计算机系统和 /或设备可以经由合适的网络(例如,互联网或万维网)连接。但是, 系统可以经由专用网或局域网实现。本发明不限于任何特定的网络。如图所示,可以根据经由计算机总线71或其他连接设置耦接的 至少一个处理器或计算节点30、存储器73、 I/O设备74、网络接口 75和永久性存储器12来实现计算机系统700。应当理解,系统700可以包括一个或多个处理器30,其通常执 行对应于图4、 5和6的流程图的指令。信息登记器IO、应用进程ll、 和/或性能监视器31可以在一个或多个处理器30上运行。应当理解,这里使用的术语"处理器"包括任何处理设备,诸如例 如包括CPU (中央处理单元)和/或其他处理电路的处理设备。还应 当理解,术语"处理器"可以指不止一个处理设备,并且与处理设备相 关的各种元件可以被其他处理设备共享。这里使用的术语"存储器,,包括例如与处理器或CPU相关联的存 储器,诸如例如RAM、 ROM、緩存,等等。永久性存储器可以包括但不限于磁盘存储器、硬盘驱动器、可移 动存储设备(例如,磁盘)等等。存储设备可以包括但不限于存储器、永久性存储器等等。存储设 备可以存在于移动或普及性设备上,诸如蜂窝电话。输入/输出设备或I/O设备可以包括例如用于输入数据到处理单 元的一个或多个输入设备(例如键盘、鼠标等等)、和/或用于呈现与 处理单元相关联的结果的一个或多个输出设备(例如扬声器、显示器等等)。网络接口可以包括例如一个或多个收发机,以允许计算机系统经 由合适的通信协议与另 一计算机系统通信。因此,包括用于执行这里所述方法的指令或代码的软件组件可以 被存储在永久性存储器中,并且在准备被使用时部分或全部被加载到存储器中并被CPU执行。虽然这里已经参考附图描述了本发明的示例性实施例,但是应当 理解,本发明并不限于这些明确的实施例,并且本领域技术人员可以 进行各种其他改变和修改,而不背离本发明的范围和实质。
权利要求
1.一种在包括第一计算节点、和第二计算节点与存储设备中至少之一的系统中将信息从第一计算节点传递到所述第二计算节点与所述存储设备中至少之一的方法,所述方法包括以下步骤监视所述第一计算节点,以收集可用资源的至少一个估计;基于所述可用资源的至少一个估计,修改所收集的数据量;和发送所述数据到所述存储设备和所述第二计算节点中至少之一。
2. 根据权利要求l的方法,其中所述可用资源的至少一个估计 包括对处理能力、1/0带宽、和网络带宽中至少之一的估计。
3. 根据权利要求l的方法,其中所述修改所收集的数据量的步 骤包括修改收集所述数据的部分的收集频率。
4. 根据权利要求l的方法,其中所述修改所收集的数据量的步 骤包括将多个实体组合成更少数量的实体。
5. 根据权利要求l的方法,还包括以下步骤 响应于所述可用资源的至少一个估计的增大,增大所收集的数据量。
6. 根据权利要求4的方法,其中所述实体包括数字,并且所述 将多个实体组合成更少数量的实体的步骤包括计算平均数和移动平均数中至少之一。
7. —种确定用于聚集数据的分批大小的方法,包括以下步骤 根据不同大小,为发送数据到存储设备和计算节点其中之一估计第一成本;根据不同大小,为丢失所述数据估计第二成本;和 基于所述估计的第一和第二成本,选择所述分批大小。
8. 根据权利要求7的方法,其中所迷估计第一成本的步骤包括 确定成本函数。
9. 根据权利要求7的方法,其中所述估计第二成本的步骤包括 确定成本函数。
10. 根据权利要求7的方法,其中通过使所述估计成本中至少两 个的聚合最小化而确定所述分批大小。
11. 根据权利要求7的方法,还包括以下步骤 将对应于所述分批大小的数据量发送到所述存储设备和所述计算节点中至少之一。
12. 根据权利要求10的方法,其中所述聚合包括求和。
13. —种用于选择性地压缩数据的方法,包括以下步骤 确定多个压缩算法中哪些压缩算法不导致开销超过可用处理资源;和选择被确定为不导致开销超过所述可用处理资源的压缩算法中 一个压缩算法,其中所选择的算法使压缩最大化。
14. 根据权利要求13的方法,其中所选择的算法在应用于数据 时超过保真度阈值。
15. —种在包括第一计算节点、和第二计算节点与存储设备中至 少之一的系统中机器可读的程序存储设备,用于有形地体现所述机器可执行的指令程序,以执行用于将信息从第一计算节点传递到所述存 储设备和所述第二计算节点中至少之一的方法步骤,所述方法步骤包括监视所述第一计算节点,以收集可用资源的至少一个估计; 基于所述可用资源的至少一个估计,修改所收集的数据量;和 发送所述数据到所述存储设备和所述第二计算节点中至少之一。
16. —种机器可读的程序存储设备,用于有形地体现机器可执行 的指令程序,以执行确定用于聚集数据的分批大小的方法步骤,所述 方法步骤包括根据不同大小,为发送数据到存储设备和计算节点中之一估计第 一成本;根据不同大小,为丢失所述数据估计第二成本;和 基于所述估计的第一和第二成本,选择所述分批大小。
17. —种机器可读的程序存储设备,用于有形地体现机器可执行 的指令程序,以执行用于选择性地压缩数据的方法步骤,所述方法步 骤包括源;和选择被确定为不导致开销超过所述可用处理资源的压缩算法中 的一个压缩算法,并且其中所选择的算法使压缩最大化。
全文摘要
本发明提供一种将信息从第一计算节点传递到存储设备和第二计算节点中至少之一。第一计算节点被监视以收集可用资源的至少一个估计,并基于该估计,修改数据量。然后,修改的数据被发送到存储设备和第二计算节点中至少之一。本发明还提供确定用于聚集数据的最佳分批大小,其中,对于一些分批大小,为发送成批信息到永久性存储器以及为丢失成批数据估计成本。然后,基于这些成本的总和,从这些不同分批大小中选择最佳分批大小。本发明还提供数据的选择性压缩,其中确定一些压缩算法中哪些压缩算法不导致开销超过可用资源。然后,选择其中一个被确定的算法来最大化压缩。
文档编号G06F11/34GK101223509SQ200680025999
公开日2008年7月16日 申请日期2006年7月21日 优先权日2005年7月26日
发明者阿鲁恩·K.·伊因加 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1