CN101595457A - 负载平衡剖析 - Google Patents
负载平衡剖析 Download PDFInfo
- Publication number
- CN101595457A CN101595457A CN200680056529.9A CN200680056529A CN101595457A CN 101595457 A CN101595457 A CN 101595457A CN 200680056529 A CN200680056529 A CN 200680056529A CN 101595457 A CN101595457 A CN 101595457A
- Authority
- CN
- China
- Prior art keywords
- analysis
- profiler
- load
- load governor
- cpu capacity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 claims abstract description 214
- 238000004891 communication Methods 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims abstract description 5
- 238000000034 method Methods 0.000 claims description 44
- 238000005070 sampling Methods 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 5
- 238000003780 insertion Methods 0.000 claims 4
- 230000037431 insertion Effects 0.000 claims 4
- 230000006870 function Effects 0.000 description 34
- 230000003068 static effect Effects 0.000 description 10
- 238000001514 detection method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000009711 regulatory function Effects 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 230000001276 controlling effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000005764 inhibitory process Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000010223 real-time analysis Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003716 rejuvenation Effects 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000002747 voluntary effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
传统的负载调节器(2)和剖析工具(1)被提供附加功能:使用通信接口在诸如电信系统之类的系统中动态地平衡剖析工具的剖析性能和可得到的备用CPU容量。剖析期间,负载调节器有规律地发送(504,514)任意备用CPU容量的信息给剖析工具,并且剖析工具响应于接收到的信息,逐步地调整(512)剖析性能。
Description
技术领域
本发明涉及在负载调节器中和系统的剖析工具(profiling tool)中的剖析方法,以及涉及负载调节器和剖析工具。
背景技术
为了实时评估计算机系统或电信系统在不同工作负载下的状况和性能,所谓的剖析工具可监控系统性能并进行性能分析,以便得到期望的剖析信息。这样的剖析工具,即剖析器,能够在具体的时间点或具体事件发生时记录信息并显示剖析信息,例如可作为所记录的样本信息流或统计摘要。
由剖析工具收集的剖析信息对于用于系统特征化,并且用于能够提高细节和整体性能,也用于识别具体的性能相关问题是必需的。然而,一些实时系统根本不能提供任何剖析能力,并且一些剖析工具也不可靠或需要由专家操作以便避免实时系统的干扰,以及相应地降低的系统性能。其它已知的剖析工具为了实现可靠性和低性能冲突,具有有限的控制能力和较低的采集信息细节级别。
对于实时剖析来说,恰当地执行信息记录可包括:在规律的采样间隔或特定事件发生时中断执行正在运行的程序代码,并且对于剖析来说,传统技术包括:采样技术和探测技术(instrumentation technique),其中采样技术正常地较之探测技术更适合实时剖析。
采样技术涉及中断执行和数据采集,并且可细分为周期指令剖析和事件剖析,其中指令剖析随着具体时间间隔而执行中断以接近随机状况,而事件剖析在具体事件发生时中断执行和采集数据。指令剖析是非干扰的,并且能够相对较快地获得可靠的剖析,并且例如,通过在特定的采样间隔内周期性地中断执行并且保存指令地址,它可用于获得处理器执行的主要代码的一部分的剖析。
事件剖析也是非干扰的,但是为获得可靠的剖析需花费更长的时间。例如,在每1000高速缓存缺失时中断执行并记录地址和这些中断之间的时间间隔,以利用事件剖析获得高速缓存缺失的剖析。
由采样剖析导致的容量开销可通过选择适当的采样间隔长度来控制,但它还取决于采集信息的数量。
然而,在事件剖析技术中,只有少数不同的并且预定义的参数可被采样,这限制了剖析。在采样剖析中,若事件没有发生在采样时刻,事件可能被丢失,这不适于在发生罕见事件时获得剖析。
为了获得主要执行的部分代码剖析,探测技术可细分为静态探测和动态探测,并且静态探测涉及探测具有附加指令的二进制代码以保存剖析信息,例如,在代码中改变控制流并引起跳转以保存目标地址的每个指令。通过探测剖析,可以收集关于个别指令、跳转或变量访问的更加详细的和完整的信息。然而,这将消耗更多容量,导致大剖析容量开销,并且详细的探测可使系统减慢10倍或更多。因此,为了达到较低的开销,所述探测必须限定为仅在小的代码片断,或减少细节,这样使之不适于实时系统。此外,存在代码的两个版本,生成方法和探测版本,需要在两个版本间转换。
传统的动态探测是最新最先进的剖析方法,并且它是可编程的以实现应用的特定剖析。动态探测工具通过用跳转到补丁区域替代指令来插入探测点,由此实现指令的动态修改。补丁区域包括与每个探测点相关的数据,包括与剖析相关执行的指令,也包括返回至探测点的指令。
动态探测工具能够收集整体信息和细节信息,并且可以交互地用来首先获得与整体图像相关的剖析,并接着获得与所述整体图像的具体部分相关的细节剖析。此外,它能够安全地收集所有发生的确定事件,并且因此适于获得罕见事件的剖析。然而,动态探测的缺点在于巨大的容量开销并且这种开销的大小不能保证,也就是说没有保证的最大容量开销。另外,开销难于计算,由于它依赖剖析指令和触发频率,这可能是未知的。
例如专利文献US5689636和US5794011中进一步揭示了技术领域中的现有技术。US5689636描述了引发动态负载的实时追踪系统,其通过追踪系统本身进行监控。当这个动态负载超过特定的阈值时,追踪系统还使自身去激活。追踪不同于剖析在于其呈现出程序执行步骤的完整记录,而剖析仅仅是所选择的事件收集的统计显示。US5794011描述了用于实时系统外部单元的性能调节程序,并且程序监控并控制外部单元的性能级别以避免超载。
在例如电信系统中的传统负载调节系统管理系统负载,并控制通信量,以避免超载情形,这将导致长时间的延迟和超时。电信系统负载调节功能的典型功能是当负载达到预定限制(也就是最大负载能力)时在超载出现前拒绝新的呼叫。由此,系统将避免超载,并且利用其容量处理实时通信量,以代替处理由超载引发的紧急任务。计算机控制系统通常设计具有不同的任务优先级,并且对于电信和数据通信系统来说通信量管理是高优先级任务。然而,故障恢复具有甚至更高优先级,其包括处理硬件、软件或网络存在的故障,而要求维护任务(例如剖析),例如硬件测试和软件一致性检验具有较低优先级,由于数据收集不应该允许干扰通信量。然而,以上描述的传统剖析方法的其它缺点在于,执行可能具有与通信量相同或甚至更高的优先级。例如,探测剖析插入指令,该指令执行为应用程序的一部分并且因此与应用程序具有相同的优先级。同样地,使用计数器的采样剖析产生中断,该中断执行时具有比通信量更高的优先级。
因此,在具有高可靠性的实时系统中提供剖析仍然存在问题,导致了不会超载系统的剖析开销。
发明内容
本发明的目的是解决上述概括的问题,并且通过根据所附的独立权利要求的负载调节器和剖析工具中的方法以及通过负载调节器和剖析工具实现该目的和其它目的。
根据一个方面,本发明提供一种在系统的负载调节器中的方法,该系统包括剖析工具,所述负载调节器有规律地监控在所述系统中的备用CPU容量。在剖析期间,使用到所述剖析工具的通信接口,通过有规律地控制剖析工具的剖析性能,负载调节器平衡剖析负载与系统中的备用CPU容量,以及所述方法包括以下步骤:在剖析期间,负载调节器有规律地通知剖析工具系统中的备用CPU容量。
依靠平衡系统中的剖析负载与备用CPU容量,当系统具有空闲的CPU容量可用时,剖析工具将能够利用更多整体系统容量,能得到更精确和/或更快的剖析结果,并且还能避免系统超载。
本方法可进一步包括以下步骤,如果系统中没有备用CPU容量,负载调节器指示剖析工具逐渐地降低剖析性能,并且如果系统具有备用CPU容量,则负载调节器允许来自剖析工具的剖析请求。另外,如果在系统中没有备用CPU容量,则负载调节器可增加CPU容量。
根据另一方面,本发明提供一种在系统的剖析工具中的方法,该系统包括负载调节器,该负载调节器有规律地监控所述系统中的CPU负载。响应于在剖析期间通过通信接口从负载调节器有规律地接收到的与可得到的CPU容量相关的信息,通过逐渐地调整剖析性能,剖析工具平衡剖析负载与系统中的备用CPU容量。
可以以预定的步骤调整剖析性能,并且对于正在进行中的剖析活动,剖析工具可以发送有规律的更新给负载调节器。
此外,剖析工具可以在增加剖析性能之前和在开始新的剖析操作之前从负载调节器请求剖析容许,其可能是未知的、或保证的最大剖析开销。
根据另一方面,本发明提供一种用于包括剖析工具的系统的负载调节器,该负载调节器包括用于有规律地监控所述系统的备用CPU容量的装置。负载调节器进一步被提供有用于在剖析期间平衡剖析工具的负载和系统中的备用CPU容量的装置,所述装置包括:
-接口,用于与剖析工具通信;
-剖析控制器,能够在剖析期间通过有规律地通知剖析工具系统中的备用CPU容量以控制剖析工具的剖析性能。
剖析控制器可被配置为,如果系统中没有备用CPU容量,则指示剖析工具逐步地降低剖析性能,或者指示剖析工具终止剖析。
此外,剖析控制器可被配置为,如果系统具有备用CPU容量,则允许来自剖析工具的剖析请求,以及如果系统中没有备用CPU容量则增加CPU容量。
根据另一方面,本发明提供一种用于包括负载调节器的系统的剖析工具,该负载调节器被配置有规律地监控所述系统的备用CPU容量。剖析工具被提供有用于在剖析期间平衡剖析负载和备用CPU容量的装置,所述装置包括:
-接口,用于与负载调节器通信;
-剖析调整器,被配置为在剖析期间响应于从负载调节器有规律地接收到的信息逐步地调整剖析性能。
剖析调整器可被配置以以预定步骤调整剖析性能,并终止剖析。
剖析调整器可进一步被配置以在开始新的剖析操作之前从负载调节器请求容许,并且新的剖析操作可能具有未知的、或保证的最大剖析开销。
所述剖析调整器可被配置以在增加剖析性能之前从负载调节器请求容许,并且对于正在进行中的剖析活动可向负载调节器发送有规律的更新。
所述剖析工具被配置以执行例如采样剖析或静态或动态探测剖析,或它们的任意组合,并且逐渐地调整剖析性能可包括例如改变采样间隔,改变动态探测,插入或移除探测点或采样事件,或及早退出剖析程序。
此外,所述备用CPU容量与系统中的最大负载能力和整体CPU负载之间的差相对应。
附图说明
现在将参考附图更加详细描述本发明,其中:
-图1是示意性示出根据本发明的剖析工具,负载调节器和它们之间的通信接口的方框图;
-图2a是系统中容量水平的示意图,而图2b示出在剖析期间所述系统中的容量水平。
-图3示出在动态探测剖析工具中的程序代码;
-图4是示出了根据本发明实施例的在剖析工具和负载调节器之间的示例性信令会话的信令图,以及
-图5是示出了根据本发明示例性实施例的剖析工具和负载调节器的功能的流程图。
具体实施方式
在以下描述中,阐述具体细节,例如特定装置以及步骤序列,以便提供对本发明的全面了解。然而,对于本领域技术人员而言显而易见的是,本发明可以在偏离这些具体细节的其它实施例中实现。
此外,很明显,所描述的功能可以使用与可编程微处理器或通用计算机相结合的功能软件实现,和/或使用特定用途集成电路实现。其中本发明以方法的形式被描述,本发明也可体现在计算机程序产品中,也可以在包括计算机处理器和存储器的系统中,其中存储器利用一个或多个可以执行所描述的功能的程序来编码。
本发明在整个剖析操作期间有规律且连续地平衡剖析工具性能与系统中的可得到的CPU容量,并且本发明涉及向监督系统中通信量负载的传统负载调节器提供附加功能,以有规律地控制在剖析期间所述系统中的剖析工具的剖析性能。剖析工具被配置以执行例如采样剖析或静态或动态探测剖析,或它们的任意组合,并且进一步被提供附加功能,以通过适当地逐步调节剖析操作逐步地降低或增加剖析负载以便在剖析期间连续地平衡剖析开销的负载与系统中的可得到的CPU容量,取决于系统中的剖析工具和其他应用的总的CPU负载。
因此,在电信系统中的传统负载调节功能控制并平衡通信量负载与可得到的资源,并且当负载达到系统的最大负载能力限制时,通信量可能被拒绝以便避免超载和恢复过程。根据本发明,在负载调节器和剖析器中引入剖析平衡功能,在剖析期间关于剖析操作启用在负载调节器和剖析器之间的通信。当系统中没有备用CPU容量时,负载调节器将通知剖析工具没有备用容量(sparecapacity),或者明确地指示剖析工具通过适当地调节剖析操作来降低剖析负载以避免超载。可替换地,如果可能,负载调节器将通过将通信量和/或剖析转向其它可得到的CPU以增加系统中可得到的CPU容量,或者指示CPU增加其性能,也就是说速度。另外,当在系统中有可得到的备用CPU容量时,负载调节器将允许剖析工具增加剖析性能。
根据本发明,引入的剖析平衡功能可以分为三个功能部分,命名为剖析工具中的剖析调整功能,负载调节器中的剖析控制功能,和通信接口。如果需要的话,如果系统中有备用容量,剖析工具中的剖析调节功能能够“抑制”剖析操作以便逐步地降低剖析负载和由剖析操作导致的容量超载,并伴随着逐渐增加剖析性能的能力。负载调节器中的剖析控制功能能够在整个剖析操作期间通过监控系统的备用CPU容量来连续地平衡剖析性能和系统中的整体CPU负载。通信接口能够在上述剖析器中的剖析调节功能和负载调节器中的剖析控制功能之间进行通信,该接口包括剖析工具接口部分和负载调节器接口部分。
图1示例性示出本发明的三个功能部分,示出了剖析工具1,其被提供有剖析调整功能单元,示为剖析调整器4;负载调节器2,其被提供有剖析控制功能单元,示为剖析控制器5;和接口3,能够在剖析器和负载调节器间进行通信,其包括位于剖析工具中的接口部分以及位于负载调节器中的接口部分。
利用上述介绍的剖析平衡功能,系统中的负载调节器将能够在通信量处理和剖析之间区分优先次序,并且当系统具有可得到的空闲CPU容量时,剖析器将被允许使用更多的整体系统容量,能够得到更加精确和/或更快的剖析结果。相反,当系统过重地负载时,例如通过外部单元,并且可得到的容量是有限的时,负载调节器可导致剖析器抑制剖析,也就是说逐步地降低剖析性能,以降低剖析开销至不能干扰或限制系统通信量的水平。如果可能,负载调节器可以使得通信量或剖析转向其它可得到的CPU或者增加CPU的性能,以增加系统中可得到的CPU容量。
当通信量和剖析器所使用的整体容量达到预定最大负载能力水平时,负载调节器能够完全停止剖析操作,由于剖析平衡通常对在剖析之上通信量处理区分优先次序。然而,当CPU有备用容量时,负载调节器也将允许剖析器使用用于剖析器的更多容量,也就是说逐步地增加剖析性能,以达到更快和/或更精确的剖析,如果需要的话。
图2a和图2b示出图中示为“整体容量”的系统整体CPU容量的水平,由“通信量”表示的通信量负载,图中由“剖析”所示的剖析负载(也就是由剖析器导致的开销),由标注为“CPU负载”的阴影线表示的通信量和剖析的整体负载,由“备用容量”表示的可得到的空闲CPU容量,和由标注为“最大负载能力”的虚线表示的最大负载能力。图2a示出任何剖析开始前的系统,并且图2b示出剖析期间的系统。通过负载调节器的传统负载调节功能在剖析期间有规律地监控备用容量,并且系统中的备用CPU容量与系统中的最大负载能力和整体CPU负载之间的差相对应。传统的负载调节器通过在达到系统的最大负载能力水平时拒绝通信量避免了通信量超载,而根据本发明的负载调节器也能够在剖析操作期间连续地平衡剖析工具的负载和通信量负载以及CPU容量。
根据本发明的剖析调整功能可被引入在例如采样剖析器中,在静态探测剖析器中或在动态探测剖析器中,并且剖析调整的实现将根据剖析器类型而不同。例如,如果负载调节器指示剖析调整功能完全关闭剖析器,采样剖析器的剖析调整功能可能禁用采样中断,而静态探测剖析器可以转换至其非探测版本,而动态剖析器的剖析调整功能将移除所有剖析点。
采样剖析器可“随机地”采样执行以确定时间花费在哪里,哪些地址产生高速缓存缺失,等等,并且它可能包括时间计数器和/或事件计数器,用于生成对收集剖析数据的中断,最简单的采样剖析器仅仅是在通常的周期时钟中断时执行的程序。能够更正确地剖析数据的更先进的采样剖析器,可以使用单独的计时器以生成与时钟中断不同步的中断,例如,与特定时间间隔或中断之间的具体数目的事件不同步。由于在大的通信系统中程序特性的固有随机性,因此这可能是随机采样好的近似。
根据第一示例性实施例,采样剖析器中剖析调整功能的附加功能是二进制抑制器(binary throttler),其中通过停止生成中断的计数器使得剖析性能降低至零。在时钟中断的情况下,在时钟中断时从执行的任务中移除剖析程序。
根据采样剖析器中剖析调整功能的第二实施例,例如在预定步骤中,通过增加采样间隔逐步地降低剖析性能,并且通过降低采样间隔逐步地增加剖析性能,这能够逐步地控制剖析负载。由于剖析负载和采样间隔是线性相关的,因此剖析负载能够通过加倍采样间隔降低50%。优选地,采样间隔能够在测量期间动态改变。在某些应用中,阶段性能随时间变化,并且变化的采样率可能影响结果,使得动态变化采样间隔不合适。然而,这并不是大多数通信和服务器应用中的情形,其典型地没有或仅仅是具有有限阶段特性。
根据采样剖析器中剖析调整功能的第三实施例,剖析器被提供有内部计数器并被配置为仅在中断的预定片段上保存剖析数据。因此,剖析负载能够逐步地降低或增加,例如,在预定步骤中,但是它不能被完全移除。
在采样剖析器中剖析调整功能的进一步示例性实施例包括上述实施例的多种组合,以便实现例如根据第三实施例的利用剖析调整功能开始逐步降低剖析负载,但是如果需要的话最后关闭,例如通过使用根据第一实施例的剖析调整功能。
静态探测剖析器是单独的,程序代码的探测版本,其被提供有附加的指令用于保存探测数据。用于静态探测剖析器的剖析调整功能能够在探测版本和非探测版本间转换,这意味着剖析被完全停止。为了降低静态探测剖析器中的剖析性能,另外的选项是提前退出程序。
在动态探测剖析器中,动态地插入剖析探测代码,通常意味着用跳转至预留补丁区域替代代码中的指令。在这个补丁区域中,存储用于剖析的指令,也用于执行替代的指令,用于在跳转至代码区域之前恢复状态,并且用于跳回。图3示出在动态探测剖析器中的程序代码8和补丁区域9,其中跳转到所述补丁区域9的指令被插入到程序代码8的探测点7中。
用于动态探测剖析的剖析调整功能的第一实施例能够动态地移除探测点,这可以逐步降低剖析性能,或甚至完全停止剖析。
用于动态探测剖析器的剖析调整功能的第二实施例包括内部计数器,该计数器在补丁区域中仅仅在执行指令的预定片段的次数上保存剖析,以及在其他次数退出程序。例如,在预定步骤中逐步降低剖析性能,以及最终所得到的剖析负载,通过片断的减少来实现,但是剖析将不会完全中断。根据示例性实施例,提供单独的内部计数器用于每个探测点,并且根据其它示例性实施例,提供全局计数器用于所有探测点,或者用于是特别类型的一组点。
用于动态探测剖析器工具的剖析调整功能的第三实施例支持在探测点中的随意行为,其可包括当用户具体条件完成时有条件的保存剖析数据,或者被编译并插入探测点中的完全用户可编程指令。
用于动态探测剖析器的剖析调整功能的进一步实施例包括上述实施例的各种组合,以便实现例如根据第二实施例的利用剖析调整功能开始逐步降低剖析负载,而如果需要的话,利用根据第一实施例的剖析调整功能最后关闭。
另外,为了降低剖析性能,在任意一种类型的剖析工具内的剖析调整功能中执行及早退出程序,而及早退出通常的结果是,在静态和动态探测期间比在采样剖析期间更多地降低剖析开销。
剖析器工具中的剖析调整功能与负载调节器中的剖析控制功能之间的接口3通过在剖析期间在剖析器工具和负载调节器之间启动与剖析性能相关的通信来控制负载调节器和剖析工具之间的交互。根据示例性实施例,对于正在进行的剖析活动,剖析器工具发送有规律的更新给负载调节器中的剖析控制器,并且也可以在开始新的剖析操作之前和在增加剖析开销之前从正在进行的剖析操作发送剖析请求给负载调节器,以便通知负载调节器剖析工具想使用更多的CPU容量。若备用性能是可得到的,负载调节器将允许剖析请求,并且也将发送有规律的更新给剖析器工具以指示任意备用容量,因此能够令剖析器工具增加剖析水平以便达到例如更多的细节剖析。
图4是示出了根据本发明示例性实施例的关于剖析平衡的在剖析工具1和负载调节器2之间的信令的信令图。在步骤4:1,剖析工具发送剖析请求给负载调节器,具有未知的容量需求。在步骤4:2,负载调节器作出响应,允许请求的剖析并指示备用容量为20%。剖析工具将开始剖析,并且负载调节器在剖析期间有规律地监控备用CPU容量,并且如果检测出没有备用CPU容量可得到,负载调节器发送剖析降低指令给剖析工具,在步骤4:3,和步骤4:4,在所述剖析性能降低后,负载调节器指示系统中的备用容量为25%。其后,在步骤4:5,剖析工具又请求增加剖析性能,并且在步骤4:6,负载调节器允许请求,并且通知剖析工具系统中的备用容量目前为20%。最后,在步骤4:7,剖析器通知负载调节器终止剖析。
根据图4的信令图所示的示例性实施例,利用未指明的容量需求发起剖析,并且剖析器工具使用从负载调节器接收到的信息调整剖析性能,以达到可接受的剖析负载。该实施例适于例如当剖析器是动态探测剖析器时,其中要求的剖析容量负载依赖于系统中监控的事件发生的频率。
根据第二实施例,利用保证的低剖析负载发起剖析,这适于例如采样剖析器,该采样剖析器能够以低默认速率采样并且基于来自负载调节器的关于可得到的容量的信息来增加采样率。
图5是流程图,示出另一个示例性剖析平衡过程,并且步骤500指示,负载调节器执行有规律地监控系统中的备用容量。在步骤502中,剖析器工具发送剖析请求消息给负载调节器,具有未知的或保证的剖析开销,并且在步骤504中,负载调节器允许剖析,并且发送备用容量信息给剖析器。在步骤506中,剖析器根据剖析请求开始剖析。负载调节器有规律地监控任意备用容量,并且当在步骤508中确定没有可得到的备用CPU容量时,由于达到最大负载能力限制,负载调节器发送剖析性能不得不降低的消息给剖析器,在步骤510中。在步骤512中,剖析器通过抑制剖析操作有规律地调整剖析性能,以降低剖析性能,并且在步骤514中,负载调节器在所述抑制之后通知剖析器系统中的备用容量。
根据本发明所描述的剖析平衡能够进行关于硬件和软件参数的更细节的剖析,由此基于实时系统,实现新的应用的性能的更快和更可靠的估计。由于可以分析多个工作负载,可获得具有实时的通信量混合的详细系统特征的改进知识。此外,可以验证系统状况,实验室的结果能够与实时的系统相比较,并且可以优化系统配置,而促使改进的用户支持,同时在具有改进灵活性的实时系统中使用先进的动态剖析工具。
尽管已经参考具体示例性实施例描述了本发明,上述描述一般仅仅意欲示出本发明的概念并且并不限制本发明的范围。
Claims (37)
1、一种在系统的负载调节器中的方法,该系统包括剖析工具,所述负载调节器有规律地监控(500)在所述系统中的备用CPU容量,该方法的特征在于:在剖析期间,使用到所述剖析工具的通信接口,通过有规律地控制剖析工具的剖析性能,负载调节器平衡剖析负载与系统中的备用CPU容量,所述方法包括以下步骤:
-在剖析期间,负载调节器有规律地通知(504,514)剖析工具系统中的备用CPU容量。
2、根据权利要求1所述的负载调节器中的方法,其中所述方法进一步包括以下步骤:
-如果系统中没有备用CPU容量,则负载调节器指示(510)剖析工具逐步地降低剖析性能。
3、根据权利要求1或2所述的负载调节器中的方法,其中如果系统有备用CPU容量,则负载调节器允许来自剖析工具的剖析请求。
4、根据前述任意权利要求的负载调节器中的方法,其中如果系统中没有备用CPU容量,则负载调节器增加CPU容量。
5、一种在系统的剖析工具中的方法,该系统包括负载调节器,该负载调节器有规律地监控所述系统中的CPU负载,其特征在于:响应于在剖析期间通过通信接口从负载调节器有规律地接收到的与可得到的CPU容量(504,514)相关的信息,通过逐渐地调整(512)剖析性能,在剖析期间剖析工具平衡剖析负载与系统中的备用CPU容量。
6、根据权利要求5所述的剖析工具中的方法,其中在预定步骤中调整剖析性能。
7、根据权利要求5或6中任意权利要求所述的剖析工具中的方法,其中对于正在进行中的剖析活动,剖析工具有规律地发送更新给负载调节器。
8、根据权利要求5-7中任意权利要求所述的方法,其中剖析工具在增加剖析性能之前从负载调节器请求(502)剖析容许。
9、根据权利要求5-8中任意权利要求所述的方法,其中剖析工具在开始新的剖析操作前从负载调节器请求剖析容许(502)。
10、根据权利要求9所述的方法,其中开始的新的剖析操作具有未知的剖析开销。
11、根据权利要求9所述的方法,其中开始的新的剖析操作具有保证的最大剖析开销。
12、根据前述任意权利要求所述的方法,其中逐步地调整剖析性能包括改变采样间隔。
13、根据前述任意权利要求所述的方法,其中逐步调整剖析性能包括改变动态探测。
14、根据前述任意权利要求所述的方法,其中逐步调整剖析性能包括插入或移除探测点。
15、根据前述任意权利要求所述的方法,其中逐步调整剖析性能包括插入或移除采样事件。
16、根据前述任意权利要求所述的方法,其中逐步降低剖析性能包括及早退出剖析程序。
17、根据前述任意权利要求所述的方法,其中系统中的备用CPU容量与系统的最大负载能力和整体CPU负载之间的差相对应。
18、一种用于包括剖析工具(1)的系统的负载调节器(2),该负载调节器被提供有用于有规律地监控所述系统的备用CPU容量的装置,其特征在于:负载调节器进一步被提供有用于在剖析期间平衡剖析工具的负载和系统中的备用CPU容量的装置(3,5),所述装置包括:
-接口(3),用于与剖析工具通信;
-剖析控制器(5),能够在剖析期间通过有规律地通知剖析工具系统中的备用CPU容量以控制剖析工具的剖析性能。
19、根据权利要求18所述的负载调节器(2),其中剖析控制器(5)被配置为如果系统中没有备用CPU容量,则指示剖析工具(1)逐步地降低剖析性能。
20、根据权利要求18或19所述的负载调节器(2),其中剖析控制器(5)被配置为指示剖析工具(1)终止剖析。
21、根据权利要求18-20的任意权利要求所述的负载调节器(2),其中剖析控制器(5)被配置为如果系统有备用CPU容量,则允许来自剖析工具(1)的剖析请求。
22、根据权利要求18-21的任意权利要求所述的负载调节器(2),其中剖析控制器(5)被配置为如果系统中没有备用CPU容量,则增加CPU容量。
23、根据权利要求18-22的任意权利要求所述的负载调节器(2),其中备用CPU容量与系统中的最大负载能力和整体CPU负载之间的差相对应。
24、一种用于包括负载调节器(2)的系统的剖析工具(1),该负载调节器被配置有规律地监控所述系统的备用CPU容量,其特征在于:剖析工具被提供有用于在剖析期间平衡剖析负载和备用CPU容量的装置(4,3),所述装置包括:
-接口(3),用于与负载调节器通信;
-剖析调整器(4),被配置为在剖析期间响应于从负载调节器有规律地接收到的信息逐步地调整剖析性能。
25、根据权利要求24所述的剖析工具(1),其中剖析调整器(4)被配置为在预定步骤中调整剖析性能。
26、根据权利要求24或25所述的剖析工具(1),其中剖析调整器(4)被配置为终止剖析。
27、根据权利要求24-26中任意权利要求所述的剖析工具(1),其中剖析调整器(4)被配置为在开始新的剖析操作前从负载调节器(2)请求容许。
28、根据权利要求27所述的剖析工具(1),其中开始的新剖析操作具有未知的剖析开销。
29、根据权利要求27所述的剖析工具(1),其中开始的新剖析操作具有保证的最大剖析开销。
30、根据权利要求24-29中任意权利要求所述的剖析工具(1),其中所述剖析调整器被配置为在增加剖析性能前从负载调节器(2)请求容许。
31、根据权利要求24-30中任意权利要求所述的剖析工具(1),其中对于正在进行中的剖析活动,所述剖析调整器(4)被配置为有规律地更新负载调节器(2)。
32、根据权利要求24-31中任意权利要求所述的剖析工具(1),其中逐步地调整剖析性能包括改变采样间隔。
33、根据权利要求24-32中任意权利要求所述的剖析工具(1),其中逐步地调整剖析性能包括改变动态探测。
34、根据权利要求24-33中任意权利要求所述的剖析工具(1),其中逐步地调整剖析性能包括插入或移除探测点。
35、根据权利要求24-34中任意权利要求所述的剖析工具(1),其中逐步地调整剖析性能包括插入或移除采样事件。
36、根据权利要求24-35中任意权利要求所述的剖析工具(1),其中逐步地降低剖析性能包括及早退出剖析程序。
37、根据权利要求25-36中任意权利要求所述的剖析工具(1),其中备用CPU容量与系统中的最大负载能力与整体CPU负载之间的差相对应。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/SE2006/050555 WO2008069715A1 (en) | 2006-12-06 | 2006-12-06 | Load balanced profiling |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101595457A true CN101595457A (zh) | 2009-12-02 |
Family
ID=39492457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680056529.9A Pending CN101595457A (zh) | 2006-12-06 | 2006-12-06 | 负载平衡剖析 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8645185B2 (zh) |
EP (1) | EP2089799A4 (zh) |
CN (1) | CN101595457A (zh) |
WO (1) | WO2008069715A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105103147A (zh) * | 2013-01-25 | 2015-11-25 | 肯赛里克斯公司 | 用工作负载分发器来跟踪 |
US9658936B2 (en) | 2013-02-12 | 2017-05-23 | Microsoft Technology Licensing, Llc | Optimization analysis using similar frequencies |
US9665474B2 (en) | 2013-03-15 | 2017-05-30 | Microsoft Technology Licensing, Llc | Relationships derived from trace data |
US9767006B2 (en) | 2013-02-12 | 2017-09-19 | Microsoft Technology Licensing, Llc | Deploying trace objectives using cost analyses |
US9772927B2 (en) | 2013-11-13 | 2017-09-26 | Microsoft Technology Licensing, Llc | User interface for selecting tracing origins for aggregating classes of trace data |
US9804949B2 (en) | 2013-02-12 | 2017-10-31 | Microsoft Technology Licensing, Llc | Periodicity optimization in an automated tracing system |
US9864672B2 (en) | 2013-09-04 | 2018-01-09 | Microsoft Technology Licensing, Llc | Module specific tracing in a shared module environment |
CN112084022A (zh) * | 2020-08-21 | 2020-12-15 | 北京健康之家科技有限公司 | 一种项目容量规划方法、装置、计算机设备和存储介质 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495427B2 (en) * | 2009-10-14 | 2013-07-23 | International Business Machines Corporation | Detecting defects in deployed systems |
JP2011086142A (ja) * | 2009-10-16 | 2011-04-28 | Ricoh Co Ltd | 画像形成装置及びプログラム操作方法 |
US9483268B2 (en) | 2012-03-16 | 2016-11-01 | International Business Machines Corporation | Hardware based run-time instrumentation facility for managed run-times |
US9471315B2 (en) | 2012-03-16 | 2016-10-18 | International Business Machines Corporation | Run-time instrumentation reporting |
US9280447B2 (en) | 2012-03-16 | 2016-03-08 | International Business Machines Corporation | Modifying run-time-instrumentation controls from a lesser-privileged state |
US9405541B2 (en) | 2012-03-16 | 2016-08-02 | International Business Machines Corporation | Run-time instrumentation indirect sampling by address |
US9367316B2 (en) | 2012-03-16 | 2016-06-14 | International Business Machines Corporation | Run-time instrumentation indirect sampling by instruction operation code |
US9158660B2 (en) | 2012-03-16 | 2015-10-13 | International Business Machines Corporation | Controlling operation of a run-time instrumentation facility |
US9411591B2 (en) | 2012-03-16 | 2016-08-09 | International Business Machines Corporation | Run-time instrumentation sampling in transactional-execution mode |
US9442824B2 (en) | 2012-03-16 | 2016-09-13 | International Business Machines Corporation | Transformation of a program-event-recording event into a run-time instrumentation event |
US9465716B2 (en) | 2012-03-16 | 2016-10-11 | International Business Machines Corporation | Run-time instrumentation directed sampling |
US9454462B2 (en) | 2012-03-16 | 2016-09-27 | International Business Machines Corporation | Run-time instrumentation monitoring for processor characteristic changes |
US9250902B2 (en) | 2012-03-16 | 2016-02-02 | International Business Machines Corporation | Determining the status of run-time-instrumentation controls |
US9430238B2 (en) * | 2012-03-16 | 2016-08-30 | International Business Machines Corporation | Run-time-instrumentation controls emit instruction |
US9471460B2 (en) | 2012-03-29 | 2016-10-18 | International Business Machines Corporation | Characterization of real-time software base-station workloads at fine-grained time-scales |
US20140068569A1 (en) * | 2012-08-31 | 2014-03-06 | Microsoft Corporation | User directed profiling |
JP6015381B2 (ja) * | 2012-11-26 | 2016-10-26 | 日本電気株式会社 | 通信システム |
US9207969B2 (en) | 2013-01-25 | 2015-12-08 | Microsoft Technology Licensing, Llc | Parallel tracing for performance and detail |
US9021262B2 (en) | 2013-01-25 | 2015-04-28 | Concurix Corporation | Obfuscating trace data |
US9575874B2 (en) | 2013-04-20 | 2017-02-21 | Microsoft Technology Licensing, Llc | Error list and bug report analysis for configuring an application tracer |
US9575864B2 (en) * | 2014-06-02 | 2017-02-21 | Microsoft Technology Licensing, Llc | Function-level dynamic instrumentation |
US9876875B2 (en) * | 2015-07-24 | 2018-01-23 | Nvidia Corporation | System, method and device for providing crowd-sourced, cloud-based custom tuning for applications |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5396635A (en) * | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
JP2777496B2 (ja) | 1991-02-28 | 1998-07-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータシステムにおいてマルチプロセスをプロファイリングする際の使用方法 |
US5960198A (en) * | 1997-03-19 | 1999-09-28 | International Business Machines Corporation | Software profiler with runtime control to enable and disable instrumented executable |
US6542854B2 (en) * | 1999-04-30 | 2003-04-01 | Oracle Corporation | Method and mechanism for profiling a system |
US7143128B1 (en) * | 2000-06-08 | 2006-11-28 | International Business Machines Corporation | Interactive data processor controlled display interface for tracking of allocated messages in a dynamic workload balancing communication system |
US20040060043A1 (en) * | 2002-07-19 | 2004-03-25 | Frysinger George P. | Method and apparatus for instrumentation ON/OFF |
US20040267548A1 (en) * | 2003-06-25 | 2004-12-30 | Jones James O. | Workload profiling in computers |
US7757236B1 (en) * | 2004-06-28 | 2010-07-13 | Oracle America, Inc. | Load-balancing framework for a cluster |
US20060184921A1 (en) * | 2005-02-14 | 2006-08-17 | Appmind Software Ab | Program management in hardware/software environment |
-
2006
- 2006-12-06 US US12/517,992 patent/US8645185B2/en not_active Expired - Fee Related
- 2006-12-06 WO PCT/SE2006/050555 patent/WO2008069715A1/en active Application Filing
- 2006-12-06 EP EP06824621A patent/EP2089799A4/en not_active Ceased
- 2006-12-06 CN CN200680056529.9A patent/CN101595457A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105103147A (zh) * | 2013-01-25 | 2015-11-25 | 肯赛里克斯公司 | 用工作负载分发器来跟踪 |
CN105103147B (zh) * | 2013-01-25 | 2018-01-26 | 微软技术许可有限责任公司 | 用工作负载分发器来跟踪的方法及系统 |
US10178031B2 (en) | 2013-01-25 | 2019-01-08 | Microsoft Technology Licensing, Llc | Tracing with a workload distributor |
US9658936B2 (en) | 2013-02-12 | 2017-05-23 | Microsoft Technology Licensing, Llc | Optimization analysis using similar frequencies |
US9767006B2 (en) | 2013-02-12 | 2017-09-19 | Microsoft Technology Licensing, Llc | Deploying trace objectives using cost analyses |
US9804949B2 (en) | 2013-02-12 | 2017-10-31 | Microsoft Technology Licensing, Llc | Periodicity optimization in an automated tracing system |
US9665474B2 (en) | 2013-03-15 | 2017-05-30 | Microsoft Technology Licensing, Llc | Relationships derived from trace data |
US9864672B2 (en) | 2013-09-04 | 2018-01-09 | Microsoft Technology Licensing, Llc | Module specific tracing in a shared module environment |
US9772927B2 (en) | 2013-11-13 | 2017-09-26 | Microsoft Technology Licensing, Llc | User interface for selecting tracing origins for aggregating classes of trace data |
CN112084022A (zh) * | 2020-08-21 | 2020-12-15 | 北京健康之家科技有限公司 | 一种项目容量规划方法、装置、计算机设备和存储介质 |
CN112084022B (zh) * | 2020-08-21 | 2023-09-08 | 北京水滴科技集团有限公司 | 一种项目容量规划方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2089799A4 (en) | 2010-08-11 |
WO2008069715A1 (en) | 2008-06-12 |
EP2089799A1 (en) | 2009-08-19 |
US20100318994A1 (en) | 2010-12-16 |
US8645185B2 (en) | 2014-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101595457A (zh) | 负载平衡剖析 | |
US9251032B2 (en) | Method, computer program, and information processing apparatus for analyzing performance of computer system | |
CN109597685B (zh) | 任务分配方法、装置和服务器 | |
CN102576326B (zh) | 操作监测设备、操作监测方法和程序存储介质 | |
CN103109276B (zh) | 系统测试方法 | |
EP3019971B1 (en) | Methods and systems for performance monitoring for mobile applications | |
CN100495990C (zh) | 用于动态调整存储区域网络组件的性能监视的装置、系统和方法 | |
CN110601900B (zh) | 一种网络故障预警方法及装置 | |
US20130160024A1 (en) | Dynamic Load Balancing for Complex Event Processing | |
CN101620562A (zh) | 一种嵌入式系统性能的评估方法及系统 | |
US7703094B2 (en) | Adaptive and dynamic filtering of threaded programs | |
CN100549979C (zh) | 系统任务的cpu占用率检测方法及系统 | |
EP2386085A1 (en) | Time based context sampling of trace data with support for multiple virtual machines | |
CN108809760A (zh) | 数据采样系统中采样周期的控制方法和装置 | |
JP2017028431A (ja) | 伝送装置及び流量計測方法 | |
CN109542341A (zh) | 一种读写io监测方法、装置、终端及计算机可读存储介质 | |
CN116682479A (zh) | 一种企业级固态硬盘时延指标的测试方法及测试系统 | |
JP2020035297A (ja) | 機器状態監視装置及びプログラム | |
US20140101672A1 (en) | Load Balanced Profiling | |
CN111274112B (zh) | 应用程序压测方法、装置、计算机设备和存储介质 | |
KR20160147493A (ko) | 신뢰구간에 기반한 에너지 절감 방법 및 이를 이용한 장치 | |
CN106855840B (zh) | 一种系统cpu分析方法和装置 | |
US10089696B2 (en) | Budget-aware event information collection during program execution | |
CN117271247B (zh) | 一种ssd固态硬盘测试方法 | |
CN118175071B (zh) | 一种近零干扰仪器设备运行状态监测系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20091202 |