Cpu工作频率的动态调节的制作方法_2

文档序号:9786924阅读:来源:国知局
者预期时段期间,具有 与在另一时间段期间使用的一组阈值/区域不同的相关联的调节的另一组阈值/区域可能 在使用中。
[0022] 或者,同一组阈值/区域可以在增加负载或需求的时段期间被使用,但是简档可 以被应用以形成一组校正以使得因为应用正执行得比其目标更好而通常可被实施的CPU 的工作频率的任何减小将被无效(以使得不实施调节)或者甚至可被逆转(以使得工作频 率被增大而非被减小)。类似地,如果应用的当前性能通常将使得对CPU的工作频率不应用 调节(即,无增大并且无减小),则其作为替代可以被按比例增大。
[0023] 当用来测量被监视的应用的性能的周期性相对长(诸如为一分钟或者数分钟) 时,使用简档来设置或者改变对CPU的工作频率的调节可能特别有帮助。
[0024] 图1是根据一些实施例的用于适配CPU功率水平的系统的框图。
[0025] 在这些实施例中,多个计算机或者计算设备(例如,设备110、设备130)中的每一 个包括一个或多个CPU或处理器(例如,CPU 112、CPU 132)。每个设备的处理器执行诸如 应用A之类的常见应用或服务的一个或多个实例(例如,实例114a、实例114b、实例134a), 为此对应的服务水平协议104被安装在执行该应用的所有设备上。
[0026] SLA 104的安装可涉及存储根据一个或多个可量化度量(诸如每秒处理的查询的 数目(例如,qps)、吞吐量、响应时间、延时等等)的应用A的需要或者期望的性能水平或者 在SLA中标识的其他性能水平。
[0027] 典型的SLA标识至少一个性能水平,但是可以允许从该目标性能的偏移。例如,用 于应用A的SLA可以规定吞吐量对于99%的二十四小时时段应当高于200KBps,和/或响应 时间对于97. 5%的所有查询应当小于100ms。然而,为了一些实施例,这些要求可被看作绝 对事项,并且如在设备110、130上安装的SLA 104将反映保持大于200KBps的吞吐量和小 于IOOms的响应时间的需要。因此,当应用A的实例的当前性能被观察时,其将被与在SLA 104中标识的一个或多个性能水平相比较。
[0028] 可以包括硬件和/或软件模块的监视器116、136根据由SLA 104(以及可能的其 他方)所规定的一些或者所有度量监视在设备110、130上执行的应用A的实例的性能。在 一些实现方式中,监视器周期性地(诸如每隔10秒、每隔2分钟等等)测量应用实例的当 前性能。
[0029] 监视器向引擎118、138报告应用性能。通过将当前性能已经(或者尚未)超过的 性能阈值标识为包含当前性能的性能区域或者以另一方式,可以将应用性能报告为一个或 多个度量的当前测量。
[0030] 基于向其报告的当前性能,可以包括硬件和/或软件模块的引擎118、138选择并 且实施对CPU 112、114的工作频率的适当调节。如在上面讨论的,调节可以引起使工作频 率增大或减小,或者使工作频率保持不变。可以直接由引擎来调节工作频率,通过调用设备 的操作系统(操作系统120、130)或者OS实用来调节工作频率,或者通过调用可以改变处 理器的工作频率的另一程序来调节工作频率。
[0031] 当多个应用实例在一个计算设备上运行时,监视器(例如,监视器116)可以计算 平均性能、最低性能或者另一合并的性能测量结果并将其报告给引擎(例如,引擎118)。例 如,所有应用实例的性能可被求平均,但是在计算平均值时,最低的一个或多个性能可以与 其他实例相比被给予更大权重以便帮助确保在任何实例比其目标水平执行得差(或者接 近其目标水平时)的情况下应用CPU的工作频率中的某一增大。
[0032] 如果计算设备的所有CPU或者处理器核心不共享被监视的应用的全部工作负载, 则可以针对每个CPU或处理器核心或者针对每个应用实例来实例化单独的引擎以及可能 的单独的监视器。在这种情形中,每个CPU/处理器核心的工作频率将在必要时被调节以帮 助确保由该处理组件所运行的应用实例令人满意地执行。
[0033] 本领域普通技术人员将认识到,在此描述的实施例所可被实施于的一些系统可以 仅包括仅运行单个应用实例的单个计算设备。另外,应用实例可被配置为直接向引擎报告 其性能(即,没有监视器)。
[0034] 在一些其他实施例中,代替仅监视单个应用(即,单个应用的一个或多个实例)以 及动态地调节CPU的工作频率以促进满足该一个应用的SLA,多个应用可被监视。在这些其 他实施例中,每个应用具有对应的SLA和目标性能,并且单独的监视器周期性地确定或者 测量它的对应的应用的活动实例的性能,并将其报告给负责确定如何调节CPU的频率的引 擎。
[0035] 与单个应用的多个实例一样,这些实施例中的调节可以基于执行得最差的应用、 平均应用性能或者对多个应用的性能的另一测度而被选择。在这些实施例的一些实现方式 中,单独的引擎或者子引擎可以针对每个应用而操作,并且可以可能地利用对它的应用的 性能的指示来向中央或者最终引擎提议或者请求特定调节,并且中央引擎可以选择并且应 用适当的工作频率调节。
[0036] 在其中实现了简档以修改或改变对CPU的工作频率的调节的实施例中,单独的简 档模块可以针对被监视的每个应用而操作,并且将在必要时与引擎通信。另外,代替针对每 个应用安装单独的SLA(如果多个应用被监视),SLA可以被合并到引擎中或者被存储在另 一系统组件(例如,简档阵列)中。
[0037] 图2A至图B图示了根据一些实施例的多个性能阈值和性能区域。所图示的阈值 和区域根据其工作频率将被动态地和自动地调节的具体CPU。特别地,并且如在上面提到, 不同CPU经常具有不同的最小和最大频率和/或在其最大值和最小值之间的不同离散工作 频率。
[0038] 在图2A中,三个阈值已被设置在100%、110%和120%的目标性能处,这将可能的 性能的频谱划分为四个区域--区域212、214、216和218。每个区域具有在被监视的应用 的当前性能在该区域内时所要实施的相关联的工作调节频率。
[0039] 因此,当应用的性能小于目标性能(例如,在应用的SLA中标识的性能)时,CPU工 作频率将被最大化(如果不是已经处于最大的话)。当应用的性能略微超过目标(例如, 超过少于10%)时,工作频率如果不是已经处于最大则将被增大一个离散级别(例如,从 1500MHz增大到1600MHz)。当应用的性能大大超过目标(例如,超过多于20% )时,工作频 率将被减小一个级别(如果其不是已经处于最小的话)。否则,工作频率将不会被改变。
[0040] 在图2B中,五个性能阈值被设置在95 %、105 %、110 %、120 %和130 %的目标性能 处,并且将性能频谱划分为六个区域--区域232、234、236、238、240、242。当应用性能不仅 仅是略微低于目标性能时,CPU的工作频率将被最大化(如果其不是已经处于最大的话)。 如果性能略微低于或者高于目标性能(例如,在95%与105%之间),则工作频率将被按比 例增大两个级别(如果不是已经处于最大的话),或者如果仅低于最大值一个级别则将被 按比例增大一个级别;如果当前性能高一点(例如,在105%与110%之间),则CPU的频率 将仅被按比例增大一个级别(如果不是已经处于最大的话)。如果当前性能大大高于目标 (例如,高于130% ),则工作频率如果可能的话将被降低或者按比例减小两个级别(例如, 如果不是处于最小的话);如果性能低一点(例如,在120%与130%之间),其如果不是已 经处于最小则将被按比例减小一个级别。否则,CPU的工作频率保持不变。
[0041] 在其他实施例中,阈值可以被设置在沿着应用的性能频谱的任何点处,并且性能 的区域可以包含该频谱的任何子范围。
[0042] 在图2A至图B的实施例中,所指示的调节被应用于CPU的工作频率,而不考虑CPU 的工作负载,或
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1