用于事务资源控制的方法和系统的制作方法

文档序号:6456881阅读:369来源:国知局
专利名称:用于事务资源控制的方法和系统的制作方法
技术领域
本发明涉及计算机资源管理。更具体地,本发明涉及用于通过 控制进程和事务(诸如操作系统的进程、应用程序进程、数据库事
务、网络活动、I/O请求)各自的资源消耗来向重要进程提供优先
并且以其它进程为代价来向 一个或多个进程分配更多资源的方法。
背景技术
在任意给定的计算机化系统中, 一组进程/事务对资源进行竟
争。例如,与中央处理单元(CPU)、输入/输出(I/O)设备(计算
才几与用户或另一信息处理系统的通信)、网络资源、或4壬意其它共 享的计算机资源有关的进程。 一个需要许多资源的"重"进程由于
可用资源的缺乏而使得其它进程减慢或停止(例如没有响应)。这
种进程/事务可以包括
为才乘讦乍系纟克(例长口, Windows 、 UNIX、 Linux、 OS2 )的一部 分的进程,诸如设备驱动、内核(为操作系统的所有其它部分提供 基础服务的核心)、服务、后台程序(daemon)(后台程序是连续运 行且为处理计算机预期接收的周期性服务请求目的而存在的程 序)。
* 应用程序进程在一个操作系统中运行的任意进程或子 进禾呈(诸如线禾呈——与可以处理多个并行用户的程序的 单一使用相关联的站位符信息。由于程序交替得到代表不同用户的重新输入,其允许程序知道哪一个用户正在 4皮月良务)。例如,计算才几游戏、防病毒程序、办7>工具、
实用禾呈序、邮件月l务、EPR应用等。
数据库事务--#1据库的 一 个才乘作(i者如
SELECT/INSERT/UPDATE/DELETE )或一组操作。
网络通信量——/人任意资源到任意目的地的IP凝:才居包
流o
I/O通信量——计算机和存储器或I/O设备之间的I/O操作流。
上面描述的所有传统系统均没有为动态;也4吏由计算机化系统 执行的重要进程优先并为这种进程分配更多资源的问题提供令人 满意的解决方案。
因此,本发明的一个目的是动态地将由计算机化系统执行的重 要进程优先并以其它进程为代价以向这种进禾呈分配更多的资源。
本发明的另一个目的是改善性能并维持性能的正常水平,并且 当重事务在后台运4亍时向用户响应时间。
本发明的又一个目的是改善性能并为重要用户/活动释放资源。
本发明的另 一个目的是改善性能并改善应用程序对于引起拒
绝服务(Dos)的重事务/操作的保护和稳定性。
本发明的另 一个目的是更有效地处理高峰要求并减少计算扭j 化系统的高峰压力。本发明的另一个目的是改善性能并维持对一个或多个事务的 期望服务质量。
本发明的其他目的和优点将随着描述的进^亍变得显而易见。

发明内容
本发明涉及一种控制计算机化系统中运行的进程、子进程和/ 或线程(诸如数据库或应用程序事务)的资源消耗的方法。相应地, 重要程度较低的进程所消耗的资源通过对计算4几化系统的其他实
体透明地且在OS外部来周期性地挂起(使得它们要求更少的资源)
并恢复这些进程而^皮释》文,同时不干预其固有资源分配才几制并允许
计算机化系统的OS对其他运行的进程分配所释放资源。
由运行的进程所消库€的资源量优选地通过在第 一 周期和第二 周期重复地限制其对于系统资源的要求来控制,直到该进程结束, 其中,第一周期期间不存在要求,第二周期期间恢复之前的要求。 为了控制给进程的系统资源,使用执行时间单元的分配取代分配 CPU和/或1/0周期。
优选地,进程通过减慢其他的进程而被加速。运4亍的进程可以 通过使用用于控制分配给它们的资源的GUI (例如,滑动虚拟阀) 而4皮加速或减'I"曼。挂起运4亍的进程可以通过固有API、调试器或直 接通过OS系统调用来执行,或者通过使用用于挂起和恢复进程的 命令的任意其他表示或二进制代码。
可以对 一 个已经运行并消耗资源的进程控制所;肖耗的资源量。 优选地,由应用程序消寿毛的资源量通过一组^L则来控制,该组关见则 可以对该应用程序外部地确定。本发明还涉及计算机化系统,其中运行的进程、子进程和/或线 程的资源消耗通过释放由 一 个或多个进程消寿毛的资源并允许所述 计算机化系统将释放的资源分配给其他运行的进程来控制,其中通 过周期性地挂起和恢复所述一个或多个进程来释放由一个或多个 进程消^^的资源。


本发明的上述和其他优点将通过参照附图的下述i兌明和非限
制性的本发明优选实施例的详细描述被更好地理解,在附图中
图1是根据本发明一个优选实施例来控制进程的资源消耗的一 般流程图2示意性示出了计算机化系统的一般体系结构,其中可以才艮 据本发明的 一个优选实施例来控制进程的资源消耗;
图3A是示出了根据本发明的一个优选实施例,如何为一个较 长的运4于的进程控制资源的实例的曲线图3B是示出了根据本发明的另一个优选实施例,如何为一个 较长的运行的进程控制资源的实例的曲线图;以及
图4A和图4B是示出了基于控制并限制其他运行事务的执行 时间的方法,如4可给系统中的重要事务更多的资源的圆图4C示出了控制分配给事务的资源的结果,即4吏不是所有的 资源均#皮4吏用;
图5示出了用于显示系统状态的直观仪表4反;以及图6示出了用于当通过滑动虚拟阀滑动片来启动事务时用于减 慢系统的定义规则窗口 。
具体实施例方式
本发明涉及基于分配执行时间块以控制给进程的系统资源,来 控制计算才几化资源的方法。大体上,该方法基于立即实时地停止并 恢复事务和进程,并且通过限制计算机资源对一些进程的消耗而向 系统中的其他事务分配更多的资源,并且不要求开始该进程时确定 优先级水平。
本发明的多种不同实施例还旨在
改善性能保持对用户的响应时间和性能的正常水平,同时重 事务仍然在后台运行。
资源处理以其他用户/活动为代1介来为重要用户/活动释》文资源。
改善保护和稳定性保护DB/OS/应用程序不受引起拒绝月良务 的重事务/操作的影响。这种进程可以消耗所有资源而不留下资源给 其他进程(诸如通过循环(执行同一组指令给定的次数或者直到获 得特定的结果)应用程序、防病毒程序、后台进程等消耗过多的 CPU )。
优先基于多种因素在数据库/OS/应用程序中的优先用户、客 户、请求等。
处理高峰处理对资源的高峰要求并且将资源在更大的时间尺 度上分配,并且通过这样来减小系统的高峰压力。图1是根据本发明一个优选实施例来控制进程的资源消耗的一
般流程图。在第一步骤IOI,操作系统中的进禾呈和事务一皮实时监控。 在下一个步骤102,啦文出评^介以决定一个运^f亍的进程是否满足与资 源消耗控制的需要相关联的一个或多个标准。如果是,则在下一个 步骤103,系统检查对该进程的预定的资源限制。在下一个步骤104, 通过以预定频率周期性地挂起并恢复进程来控制用于该进程的资 源,同时如果该进程仍然在运行则每次在步骤105检查直到其结束。 其中管理该进程对资源的请求而没有将更重要的进程优先的资源 管理的传统方法导致了固有CPU和/或I/O算法(尤其)将大量资 源分配给增加负荷但不是很重要的进程的情况。这使得许多其他资 源得到很少量的资源,直到释放或拒绝了服务。相反,本发明4是出 的方法通过最优地管理分配给进程的资源来允i午所有进程运4亍并 允许新的进程开始运行,使得不是很重要的进程得到较少的资源, 因此为允许更重要的进程以相同或较快的速度运行释放资源,同时 避免了对任何请求的拒绝。
图2示意性示出了计算机化系统的一般体系结构,其中可以才艮 据本发明的一个优选实施例来控制进程的资源消耗。在该实例中, 多个用户201连接至运行在服务器203上的应用程序202。通常, 通过控制CPU 204和大量存储设备(硬盘)205的操作的操作系统 来执行资源分配。根据本发明,添加唯一的接口 206用于在操作系 统级控制相应的进程/线程的操作。该接口适于每个环境,这是因为 进程/线程可以从一个环境(例如操作系统)变化到另 一个环境。通 过其标准应用程序接口 (API,由计算机操作系统指示的方法,程 序师通过其写入可以进行操作系统请求的应用禾呈序)来连接至才喿作 系统是可能的。例如,使用存在于每个操作系统中的固有调试特征 (定位和固定或绕开计算机程序代码中的程序缺陷/错误的进程), 无论在何时请求通过添加"停止,,命令来达到干预。本发明提出的 方法使用调试器来操纵和管理资源消耗。例如,通过使不是很重要的进程在预定的时间周期取消其对资源的要求,多个更重要的进程 被自身加速。结果,操作系统将向更重要的其他运行进程分配释放 的资源。执行这些而不用实际干预操作系统的固有资源分配4几制
(结果是被操纵的,而不是OS的操作)。
资源控制是基于在给定环境中识别和控制事务/进程的下列步
骤的
步骤l:收集关于事务/进程的统计
为了控制给定进程/事务的资源消耗,通过4壬意传统现有的方法 来监控系统。例如,在Oracle凄史才居库中,内部凄t才居库^见察并交^f寸关 于事务的多个因素和统计(_渚如用户名、连4妄的终端、事务内容、 使用的资源量等)。可以使用内部命令或(甚至)第三方工具,例 如,为了收集与运行的进程/事务相关的统计,并且将需要它们的资 源-故控的进程/事务作为目标。
步骤2:将统计与资源规则结合(cross)
下一个步骤是将在之前的步骤1中收集到的统计结合至一组规 则。规则被定义为一组阈值用于每个聚集的统计/因素。例如,如果 事务是当前活跃的,在每秒进行多于1000次的物理读取,扫描表 "X"或在高峰小时(上午10点到下午4点)期间运4亍,则其资源 消4毛减少到20%。才艮据另一个实施例,如果企业的管理者执4亍一个 进程,该进程已经运行了 5分钟且还没有完成,同时职员还执4亍了 其他进程,则(职员的)其他进程的资源消耗减少到20%。根据另 一个实施例,如果进程是工作的"防病毒程序"同时办^^工具正在 运4亍,则其资源消寿4减少到5°/0。
步骤3:控制事务资源使用在该步骤中,通过分配执行时间块来控制事务资源消耗。才艮据 本发明实施例来分配执行块的方法是基于挂起和恢复进程的,其可 以在计算才几4匕系统中以多种方式进4亍。
通常,资源控制是基于在运行且管理事务的操作系统级识别准 确的进程/线程的。之后,进程/线程以由规则定义的一个频率#皮挂 起和恢复,导致了将其减慢且控制其使用的资源量的效果。下列实 例示出了如何在不同环境中使用本发明提出的方法。
实例1:在Oracle数据库中将一个进程的资源消耗限制到20%
在该实例中,执行事务的操作系统中的进程/线程被识别并使用 ORADEBUG SUSPEND命令(通过SQLPLUS实用程序)将其挂起 4秒钟。之后使用ORADEBUG RESUME命令将其恢复1秒钟。重 复挂起/恢复操作直到事务完成。数据库应用程序的优点在于根据本 发明,事务首先在数据库中^皮识别,并且之后在才喿作系统中被识别。 之后,分配给该事务的资源在OS中被管理。结果是数据库中的负 荷受影响而不管理^t据库。
实例2:在Unix/Linux环境中将一个进禾呈的资源消耗限制到
20%
在该实例中,执行事务的操作系统中的进程/线程被识别并使用 "KILL-STOP"命令(在shell环境中)将其挂起4秒钟。之后使 用"KILL-CONT"命令将其恢复l秒钟。重复STOP/CONT操作直 到事务完成。可选地,这可以通过直4妄-使用信号代码号来完成。例 ^口, (SUN孩吏系纟充的)Solaris OS中的"KILL画23"和"KILL-25" 命令,或Free BSD (基于Unix才喿作系纟克的Berkeley Software Distribution (BSD)片反本的免费开源才喿作系统)或一些Linux中的 "KILL-17"和"KILL-19"命令。KILL命令被用在"Shell"(与UNIX操作系统交互的用户接口 ) 级别。可选地,系统要求可以直4妻<吏用的特定OS。例如在Unix/Linux OS 中可以4吏用命令"KILL ( pid,SIGSTOP ),,和"KILL (pid,SIGCONT ),,。
实例3:在窗口环境中将一个进禾呈的资源消l毛限制到20%
在该实例中,存在与操作系统中进程的接口连接阶^殳以获得其 句柄,以及存在与特定进程的线程的接口连接阶段以获得其句柄。 之后使用"THREAD.SUSPEND"命令(例如在.NET中)将线程挂 起4秒钟。之后4吏用"THREAD.RESUME"命令(.NET中)将其 恢复1秒钟。重复挂起/恢复操作直到事务完成。
实例4:在I/O (存储)子系统环境中将一个进程的资源消耗限 制到20%
在该实例中,连接存储设备并且识别相应的I/O流。之后,将 I/O流挂起4秒钟并且之后将其恢复1秒钟。重复挂起/恢复操作直 到I/O流结束。
实例5:在网络接口 (诸如集线器、交换机等)中将一个进程 的资源消耗限制到20%
在该实例中,识别IP凄t据包的相应流。之后将IP凄t据包递送 挂起4秒钟并且之后将其恢复1秒钟。重复挂起/恢复操作直到事务 结束。
图3A是示出了根据本发明的一个优选实施例对较长的运行的 进程如何控制资源的实例的图表。在示出的实例中,在计算机中执 行单一的重任务进程(进程的局部磁盘使用时间,每秒钟在物理读取中所表达的),导致高I/O消耗(在右边示出)。进程的资源消耗 被限制在达到50%的水平。通过将进程挂起5秒钟,并且之后将该 进程恢复5秒钟并且重复该挂起/恢复步骤直到请求结束来执行该 限制(在左边示出)。可以清楚地看到,相比于不受控的资源分配, 平均I/O读耳又的分配时间上^皮基本减'J、。
图3B是示出根据本发明的另一个优选实施例对较长的运行的 进程如何控制资源的实例的图表。在示出的实例中,在计算机中4丸 行单一的重任务进程(进程的CPU使用时间),导致高CPU消耗(在 右边示出)。该进程被挂起和恢复同时将资源消耗限制在达到50% 的水平(左边示出了具有资源控制的CPU使用时间)。通过将进程 挂起5秒钟,并且之后将该进程恢复5秒钟并且重复该桂起/恢复步 骤直到请求结束来执行该限制。可以清楚地看到,相比于不受控的 资源分配,平均CPU使用时间的分配被基本减小。
图4A和图4B是示出了基于控制并限制其他运行事务的执行 时间的方法,如4可给系统中的重要事务更多资源的圓图。
图4A示出了在两个事务且其中一个被定义为重要事务的情况 下控制资源分配的结果。当使用操作系统的默认(不受控)资源管 理的情况下,资源被均等地分配给两个事务(左边的圓图),使得 所有事务对所有资源消耗相同的时间量。当根据本发明使用操作系
统的受控的资源管理的情况下,90%的资源被分配给更重要的事务, 同时将不是很重要的事务的资源消耗限制到10% (右边的圆图)。 通过向不是很重要的事务分配更小的执行时间块来将其减慢,以为 更重要的事务释放资源时间。
图4B示出了在多个事务且其中一个被定义为重要事务的情况 下控制资源分配的结果。当使用操作系统的默认(不受控)资源管 理的情况下,资源;故均等地(20%)分配给所有的五个事务(左边的圆图)。当根据本发明使用操作系统的受控的资源管理的情况下,
80%的资源被分配给更重要的事务,同时将四个剩余的不是很重要 的事务的资源消耗限制到每一个5%(右边的圆图)。在两种情况中, 这通过向不是很重要的事务分配更小的执行时间块来完成,因此将 其减速,同时将获得的释放的执行时间添加给更重要的事务。
图4C示出了控制对事务的资源分配的结果,即使没有使用所 有的资源。在这种情况下,当存在可用的释;^丈资源(左边圓图)时 通常消耗40%资源的特定的不是很重要的资源也根据本发明提出 的方法被管理,以仅消耗20%的资源(右边圓图),因此释放更多 的资源。
贯5示出了用于显示系统状态的可视仪表板。使用系统lfc^测 量显示系统的全面状态,^使用绿色用于健康系统JU吏用红色用于病 态系统。在该实例中,资源-使用指示器51显示CPU和I/O两者的 使用水平。健康条52显示13%负荷的全面管理的系统。虚拟资源 分割图53显示加速的进程的级别。面板54、 55和56分别显示CPU 使用历史、I/O事务历史和当前观察的运行的事务。
当事务已经启动时,图6中示出的定义失见则窗口可以用来通过 向左滑动虚拟阀滑动片来将系统减速,以防止选择的事务占据可用 资源。可以为事务的类型创建合适的MJJ'J。
当然上述实例和描述仅用于解释的目的,并且不旨在以任意方 式限制本发明。技术人员可以理解,本发明可以以多种方式被执行, 采用上面描述的多于一个的技术,所有这些都不超出本发明的范围。
权利要求
1.一种控制计算机化系统中运行的进程、子进程和/或线程的资源消耗的方法,包括a)通过周期性地挂起并恢复一个或多个进程来释放由所述一个或多个进程消耗的资源,b)允许所述计算机化系统向其他运行的进程分配所释放的资源。
2. 根据权利要求1所述的方法,其中,所述其他运行的进程是更 重要的。
3. 根据权利要求1所述的方法,其中,通过OS来执行所述资源 的分酉己。
4. 根据权利要求1所述的方法,其中,所述运行的进程是数据库 事务。
5. 根据权利要求1所述的方法,其中,所述运行的进程是应用程 序事务。
6. 根据权利要求1所述的方法,其中,通过在第一周期和第二周 期重复地限制所述运行的进程对系统资源的要求,直到所述进 程结束,来控制由所述运行的进程消耗的资源量,其中在第一 周期期间不存在所述要求,以及在第二周期期间恢复之前的所 述要求。
7. 根据权利要求1所述的方法,其中,为了控制给进程的系统资 源,
8. 根据权利要求1所述的方法,其中,执行运行的事务/进程的 挂起和恢复对所述计算才几化系统的其它实体来i兌是透明的。
9. 根据权利要求8所述的方法,其中,在OS外部执行所述运行 的事务/进程的挂起和消耗而不干预其固有的资源分配机制。
10. 根据权利要求1所述的方法,其中,通过减慢其它进程来加速 一个或多个进禾呈。
11. 4艮据4又利要求10所述的方法,其中,通过4吏进程要求更少的 资源来挂起所述进程。
12. 根据权利要求1所述的方法,其中,通过使用用于控制向运行 的进程分配资源的GUI来加速或减慢所述运行的进程。
13. 根据权利要求11所述的方法,其中,所述GUI包括滑动虚拟 阀。
14. 根据权利要求1所述的方法,其中,通过固有API来执行所 述挂起。
15. 根据权利要求1所述的方法,其中,通过调试器来执行所述挂 起。
16. 根据权利要求1所述的方法,其中,直接通过OS系统调用或 使用用于挂起和恢复进程的二进制代码或任意其他命令表示 来执行所述挂起。
17. 根据权利要求1所述的方法,其中,控制已经运行并消耗资源 的进程所消耗的资源量。
18. 才艮据斥又利要求1所述的方法,其中,通过在所述应用程序外部 确定的一组失见则来控制由应用^E序消^^的资源量。
19. 一种计算机化系统,其中通过释放由 一个或多个进程消耗的资 源并允许所述计算4几化系统向其他运4亍的进程分配所释》文的 资源来控制运行的进程、子进程和/或线程的资源消耗,其中 通过周期性地挂起和恢复一个或多个进禾呈来释》文由所述一个 或多个进程消耗的资源。
全文摘要
一种控制计算机化系统中运行的进程(206)、子进程和/或线程(诸如数据库或应用程序事务202)的资源消耗的方法,其中通过对计算机化系统的其它实体透明地且在OS外部(而不干涉其固有的资源分配机制)周期性地挂起和恢复这些进程来释放由不是很重要的进程消耗的资源(204)并允许计算机化系统的OS向其他运行的进程分配所释放的资源。
文档编号G06F17/00GK101595456SQ200780048313
公开日2009年12月2日 申请日期2007年12月27日 优先权日2006年12月27日
发明者伊拉德·多伊奇, 埃利兰·马勒基 申请人:莫尔It资源有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1