CN1737772A - 确定处理器利用率的系统和方法 - Google Patents
确定处理器利用率的系统和方法 Download PDFInfo
- Publication number
- CN1737772A CN1737772A CN200510109832.8A CN200510109832A CN1737772A CN 1737772 A CN1737772 A CN 1737772A CN 200510109832 A CN200510109832 A CN 200510109832A CN 1737772 A CN1737772 A CN 1737772A
- Authority
- CN
- China
- Prior art keywords
- processor
- value
- frequency
- cpu
- utilization
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
在至少部分实施例中,系统(200)包括处理器(202A)和耦合到处理器(202A)的存储器(208)。存储器(208)存储处理器性能实用程序指令(228)和性能调整指令(230)。当执行时,处理器性能实用程序指令(228)被设定为引起计数处理器(202A)的活动(106,108)并且引起基于计数值(102)确定处理器利用率值。当执行时,性能调整指令(230)被设定为基于处理器的当前工作频率与最大工作频率的比较来调整处理器利用率值。
Description
相关申请的交叉引用
本申请要求2004年8月4日提交的名为“确定真正处理器利用率的方法”的临时申请号60/598732的权益,通过引用将其内容结合于本文。
背景技术
为了在轻工作负荷时节能,可以将处理器动态地设置到以较低的频率运行。例如,如果最大频率为100MHz的处理器遇到轻工作负荷时,则处理器可以被设置为运行在80MHz。若工作负荷增加,则处理器的速度也可以相应地增加以适应工作负荷。
用来监控与处理器当前频率相对应的处理器利用率的性能实用程序可能提供一个不准确的利用率测量结果。例如,如果上述处理器被设置为运行在其最大频率100MHz下,则基于当前频率的利用率测量结果是准确的。然而,如果该处理器被设置在以降低的速率80MHz运行时,则根据处理器降低后的频率与处理器最大频率的比率(例如80/100),基于当前频率的利用率测量结果是不准确的。
附图说明
将参照附图对本发明范例进行详细地描述,其中:
图1表示根据本发明实施例的对处理器活动进行计数的图表;
图2表示根据本发明实施例的计算机系统;
图3表示根据本发明实施例的确定真正处理器利用率的系统;
图4表示根据本发明备选实施例的确定真正处理器利用率的另一系统;
图5表示根据本发明实施例的方法;以及
图6表示根据本发明备选实施例的另一方法。
符号及术语
下面的描述及权利要求中采用了某些术语来指代特定的系统组件。正如本领域技术人员所知,计算机公司可能用不同的名字来指代组件。本文不打算对那些名字不同但功能相同的组件进行区别。在下面的讨论和权利要求中,广泛使用术语“包括”和“包含”,因此应当解释为意味着“包括但不限于”。同时术语“耦合”意味着间接或直接的电连接。因而,如果第一装置耦合到第二装置,则此连接可能是通过直接电连接或者经由其它装置和连接间接电连接。
具体实施方式
下面的讨论是针对本发明的各种实施例。虽然这些实施例中的一个或多个是优选的,但所公开的实施例不应被解释为或在其它方面被使用为限制本公开的范围(包括权利要求)。另外,本领域技术人员会理解下面的描述具有广泛的应用,任何实施例的讨论仅是该实施例的示范,并不意味着宣布所公开的范围(包括权利要求)被限制在所述的实施例。
本发明的实施例主要指能够精确测量处理器利用率的方法和系统,即使处理器的工作频率是动态的。在至少一些实施例中,一段时间内处理器的利用率通过量化这段时间内处理器的活动级来计算,而且,如果需要,基于这段时间内处理器的工作频率与处理器的最大工作频率的比较来调整处理器的利用率。
图1表示根据本发明实施例的对处理器活动进行计数的图表100。如图1所示,对照时间描述处理器活动,例如操作系统(OS)内核活动106以及用户应用程序活动108。在规则时间周期104,处理器执行的活动被确定并被计数(此处称为“计数值”102)。图1中示出了七个计数值(C1-C7)102。C1、C2、C5、C6和C7是用户应用程序计数值,C4是OS内核应用程序计数值而C3是一个“空操作”值(即,处理器不执行任何活动或可识别的活动)。
至少在一些实施例中,OS帮助确定在图1所示的计数进程期间处理器执行的活动。例如,OS可以以规则的时间间隔比如每10毫秒(ms)管理计数进程和线程。在这种情况下,OS编程硬件以便每10ms中断进程。在每一次中断(除管理计数进程和线程之外),OS确定处理器是否正执行操作系统内核代码、用户应用程序代码或空操作码。然后OS相应地更新OS内核计数器、用户应用程序计数器和空操作计数器其中之一。处理器性能监控实用程序被设计为在预定时间间隔从OS抽取计数器数据。例如如果在一秒结束时(例如100个中断),OS确定处理器执行OS内核代码20次、用户应用程序代码70次和空操作码10次,处理器性能实用程序基于下面所示的方程式(1)报告处理器被利用了90%。
Ucpu=[(Ckernel+Capp)/(Ckernel+Capp+Cidle)]×100% 方程式(1)
在方程式(1)中,Ucpu为被观查的处理器利用率,Ckernel是OS内核计数的数量、Capp是用户应用程序计数的数量以及Cidle是空操作计数的数量。如前所述,在周期时间间隔(例如每秒一次)抽取计数值(Ckernel、Capp、Cidle)并且确定所观察的处理器利用率(Ucpu)。这样,如果时间间隔期内计数值为如前所述的Ckernel=20、Capp=70和Cidle=10,则Ucpu=[(20+70)/(20+70+10)]×100%=90%。每个时间间隔基于新的计数器数据的Ucpu的值可能发生变化。处理器性能实用程序可以被设定为以数字值或图表部分来报告Ucpu的值
对于多处理器系统,OS为每个处理器使用OS内核计数器、用户应用程序计数器和空操作计数器。在周期时间间隔中,处理器性能监控实用程序能够从OS抽取所有计数器数据并且报告每个处理器的处理器利用率和/或总系统利用率(例如总系统利用率可以通过对全部处理器利用率求平均值来确定)。
本发明的实施例实现具有动态工作频率的处理器。例如工作频率随工作负荷的不同可以在最大工作频率和最小工作频率之间调整。美国专利号6438697名为“基于需求的处理器时钟频率转换”描述了一种动态改变处理器工作频率的方法和系统,并且将其全部内容通过引用结合于本文。为了说明动态工作频率,软件实用程序(例如处理器性能实用程序或其它实用程序),通过比较处理器当前工作频率与处理器最大工作频率来调整方程式(1)中被观察的处理器利用率(Ucpu)的值,如下面方程式(2)中所示。
UCPU_DYNAMIC=UCPU×(Fcurrent/Fmax) 方程式(2)
在方程式(2)中,UCPU_DYNAMIC是具有动态工作频率的处理器的“真正的”处理器利用率。在至少部分实施例中,真正的处理器利用率与CPU的最大工作频率相关。方程式(2)还示出,Ucpu是如上面方程式(1)中所述的被观察的处理器利用率。Fcurrent是被监控处理器的当前工作频率并且Fmax是被监控处理器的最大工作频率。UCPU_DYNAMIC、Ucpu、Fcurrent和Fmax的值在周期时间间隔被确定并且由例如处理器性能实用程序的软件实用程序报告。例如,如果在给定的时间间隔内Ucpu=90%,Fcurrent=80MHz并且Fmax=100MHz,那么给定的时间间隔内UCPU_DYNAMIC的值是90%×(80/100)=72%。因此,方程式(2)提供了说明处理器工作在低于最大频率时的“真正的”处理器利用率的值(即,如果处理器工作在低于最大频率时,则由方程式(1)提供的被观察的处理器利用率(Ucpu)值是不准确的)。
计算并报告UCPU_DYNAMIC值而不是观察的Ucpu值在几个方面是有用的。在至少部分实施例中,UCPU_DYNAMIC值用来确定与业务相关的细节(例如,基于服务器业务的细节)。例如,信息技术(IT)部门可能在一段时间内(例如几个星期或几个月)监控被观察的处理器利用率以确定基于服务器的应用(例如数据库、邮件服务器或者基于网络的应用)的效率。如果处理器性能监控报告了一个夸大的观察的利用率(例如上例中,如果被监控处理器的工作频率低于该处理器的最大工作频率,基于方程式(1)的90%的观察的利用率是夸大的),则操作员可能会不得不开始一项不必要的努力以便使基于服务器的应用流畅。同样,IT部门可能在一段时间内监控所观察的处理器利用率以确定是否部署更多或更少的服务器。如果处理器性能监控报告了服务器处理器的夸大的观察的利用率,则操作员可能不得不部署比需要的服务器更多的服务器。同样,基于消费者处理器利用率向消费者收费的IT部门可能在一段时间内监控可观察的处理器利用率以确定向消费者收多少费。因此,夸大的观察的处理器利用率值可能导致夸大地收费。至少基于以上原因,使用方程式(2)计算并报告UCPU_DYNAMIC而不是使用方程式(1)计算并报告所观察的Ucpu是有益的。
图2示出了根据本发明实施例的计算机系统200。在至少部分实施例中,计算机系统200是服务器。计算机系统200被设定为以至少两种方式报告真正的处理器利用率值(例如UCPU_DYNAMIC)。在第一种方式中,基于处理器当前工作频率与最大工作频率的比较来修改计算机系统200跟踪的计数器数据(例如,OS内核计数值、用户应用程序计数值和空操作计数值)。在至少部分实施例中,在处理器性能实用程序抽取数据之前,基于所述比较通过加权计数数据(或增大或减小值)来完成修改。在这种方式下,当处理器性能实用程序抽取修改后的计数器数据并且报告所观察的处理器利用率(例如Ucpu)时,实际上报告的是真正的处理器利用率(例如UCPU_DYNAMIC)。
在第二种方式中,计算机系统200的计数器数据被跟踪(例如图1所述的),但是在数据被处理器性能实用程序抽取之前没有被修改。而是,从处理器性能实用程序中分离出的实用程序应用(即,修改的处理器性能实用程序)根据未修改的计数器数据以及关于处理器当前工作频率与处理器最大工作频率的比较信息来计算真正的处理器利用率。该实用程序应用被设定为报告真正的处理器利用率(例如UCPU_DYNAMIC)或者为处理器性能实用程序提供真正的处理器利用率,由处理器性能实用程序来报告。另外,处理器性能实用程序可以用来报告观察的处理器利用率(例如Ucpu)。
如图2所示,计算机系统200包括耦合到存储器208的多个处理器或CPU202A-202N。CPU 202A-202N也耦合到时钟逻辑204和周期性中断定时器。在至少某些实施例中,时钟逻辑204控制主时钟或系统时钟用于CPU 202A-202N。例如,时钟204可以使CPU 202A-202N工作在最大频率下,例如100MHz。为响应来自CPU 202A-202N其中之一或者其他控制机构的命令,时钟逻辑204也能使CPU 202A-202N工作在比最大频率低的频率下。例如,如果确定提供给CPU 202A-202N的工作负荷是“轻”工作负荷,则时钟逻辑204可能接收一条命令从而将时钟频率从100MHz减小到80MHz。
如图所示,存储器208存储了OS内核220和用户应用程序240。在至少部分实施例中,OS内核包括监控指令222、性能计数器224、工作负荷调整指令226、处理器性能实用程序指令228和性能调整指令230。
当设置好后,周期性中断定时器206中断CPU 202A-202N。在中断期间,监控指令222确定每个CPU执行的最后活动(或者要执行的下一步活动)。例如,CPU活动可被分为OS内核活动、用户应用程序活动和空操作活动。在一些实施例中,监控指令222被周期性的执行(例如,每10ms一次)。监控指令222也能使数据例如计数值存储在计数器224中。在至少部分实施例中,计数器224包括分配用来存储计数数据的存储器。
当执行时,处理器性能实用程序指令228引起抽取计数器数据。在部分实施例中,处理器性能实用程序指令228基于上述方程式(1)为一个或多个处理器计算观察的处理器利用率。处理器性能实用程序指令228也使计算所得的观察的处理器利用率(例如Ucpu)通过可视化的表示(例如字母数字值和/或图表)向用户报告。处理器利用率由处理器性能实用程序指令228基于通过执行监控指令222跟踪和存储的处理器活动计数值在周期基线计算并更新。
当执行时,工作负荷调整指令226确定CPU 202A-202N中的至少一个是否正在执行轻工作负荷。例如工作负荷调整指令226可以与监控指令222结合操作以确定CPU活动的阈值百分数(例如30%)为空闲。在这种情况下,工作负荷调整指令226可以使时钟逻辑204降低CPU 202A-202N的工作频率(例如从100MHz到80MHz)。降低CPU 202A-202N的工作频率有助于节能,否则即使在执行空操作时为CPU 202A-202N计时也是种浪费。在部分实施例中,对CPU工作负荷的改变是动态的并且至少部分取决于用户应用程序240的执行(即要执行的用户应用程序指令数量的增加或减少导致CPU的工作负荷相应地改变)。在至少部分实施例中,上述的处理器性能实用程序指令228不直接说明CPU工作频率的动态改变,从而导致潜在的不正确的处理器利用率值。
当执行时,性能调整指令230引起报告真正的处理器利用率。如上所述,真正的处理器利用率说明CPU工作频率的动态改变。性能调整指令230至少以两种方式工作。在第一种方式下,在处理器性能实用程序指令228抽取计数器224中的计数值之前,性能调整指令230修改了计数器224中的计数值。例如,可通过处理器当前工作频率与处理器最大工作频率的比值加权计数值。在部分实施例中,对每一个计数值都进行计数值修改(也就是说,每一个计数值都可能被调整以反映处理器当前工作频率与处理器最大工作频率的比较)。作为选择,也可以在预先设定的计数值数量出现后修改计数值。在任一情况下,处理器性能实用程序指令228抽取修改后的计数数据并报告真正的处理器利用率,而不是观察的处理器利用率。
在第二种方式中,性能调整指令230不修改计数数据。取而代之的是,性能调整指令230使用已经存在的计数数据来确定所观察的处理器利用率。如果需要,可以基于CPU的当前工作频率与最大工作频率的比较来修改所观察的处理器利用率,以确定真正的处理器利用率(例如,性能调整指令230可以执行方程式(2)以确定真正的处理器利用率)。在部分实施例中,性能调整指令230报告(或显示)真正的处理器利用率而处理器性能实用程序指令228报告所观察的处理器利用率。可选地,性能调整指令230也可以与处理器性能实用程序指令228结合工作,这样处理器性能实用程序228报告真正的处理器利用率。
图3示出了根据本发明实施例的确定真正处理器利用率的系统300。例如系统300可以表示上述计算机系统200的组件。如图3所示,为了说明性的目的,将系统300分为硬件空间302、OS空间304和用户空间306。如将在本文描述地,本发明的至少部分实施例基于来自硬件空间302、OS空间304和用户空间306的每一个的元件。
硬件空间302表示系统300的物理组件,比如处理器、总线、桥接器和存储器。如图所示,硬件空间302包括基于硬件的实时时钟(RTC)310以及系统管理中断(SMI)硬件350。硬件RTC310是系统300中的主OS定时机构,有时也被称作“系统时钟”。SMI硬件350包括设置为产生中断以触发与原始设备制造商(OEM)软件栈(例如SMM处理器352和SMI软件354)中相关管理活动的硬件。
OS空间304表示操作系统(OS)。OS负责命令、控制和管理硬件资源,使得软件应用程序以安全并可控的方式“运行”。如图所示,OS空间304包括OS中断处理器320、内部处理器中断(IPI)调度器播送设备322。OS中断处理器320包括由OS提供的计算机可读指令,用来接收和处理来自RTC 310的中断。OS中断处理器320也跟踪全局系统定时并与IPI调度器播送设备322进行通讯(或者“通话”)。IPI调度器播送设备322包括由OS提供的计算机可读指令,用来向计算机系统300的所有处理器(例如,CPU)广播定时事件。在部分实施例中,IPI调度器播送设备322是OS中断处理器320的一部分。
对系统300中的每一个CPU来说,OS空间304包括CPU IPI处理器324A-324N、形实转换程序转向器(thunk redirector)326A-326N、CPU专用调度器328A-328N、计数器330A-330N和设备驱动332A-332N。每一个CPU IPI处理器324A-324N包括由OS提供的计算机可读指令,运行在CPU上并收集OS和用户进程的定时统计。每一个形实转换程序转向器326A-326N包括由OS提供的计算机可读指令,用来截取OS向OEM提供的驱动代码(例如设备驱动332A-332N)进行的通话。每一个CPU专用调度器328A-328N包括由OS提供的计算机可读指令,用来调整跟踪CPU利用率的计数器(例如计数器330A-330N)。每一个计数器330A-330N包括一块由CPU专用调度器328A-328N分配并“拥有的”存储器(例如,CPU专用调度器328A拥有计数器330A,CPU专用调度器328B拥有计数器330B等)。
每个设备驱动332A-332N包括由OEM提供的计算机可读指令,用来监控实时的硬件性能例如CPU节流(也就是CPU工作频率的变化)。在图3所示的计算机系统实施例中,每个设备驱动332A-332N设定为基于通过形实转换程序转向器接收的来自CPU IPI管理器324A-324N的信息(例如,设备驱动332A通过形实转换程序转向器326A接收来自CPU IPI处理器324A的信息,设备驱动332B通过形实转换程序转向器326B接收采自CPU IPI处理器324B的信息,等等),监控在CPU工作频率下的改变。如前所述,每个CPU IPI处理器324A-324N收集OS和用户进程的定时统计。通过监控来自每个CPU IPI处理器324A-324N的定时统计以及存储在每个计数器330A-330N中的数据,设备驱动332A-332N被设定为(如果需要)使CPU专用调度器328A-328N调整存储在计数器330A-330N中的计数器数据。
例如,如果CPU的工作频率由于轻工作负荷而下降,则相应的CPU专用调度器可以调整性能计数器的数据以反映CPU的真正处理器利用率(也就是说,CPU的真正处理器利用率说明CPU未工作在最大频率时的情况)。在部分实施例中,CPU专用调度器被设定为改变计数值(也就是说计数值可以被加权或者简单地从一个值改变为另一个),这样当抽取改变后的计数数据根据方程式(1)来计算所观察的处理器利用率(Ucpu)时,得到的值就是真正的处理器利用率。如上所述,来自三个计数器的信息(例如,OS内核计数器、用户应用程序计数器和空操作计数器)可以被用来确定观察的处理器利用率(Ucpu)。因此,要反映CPU的真正处理器利用率,这些计数值中的一个或多个要被修改。
例如,使用前述计数数据(也就是,OS内核计数值=20、用户应用程序计数值=70、空操作计数值=10)和方程式(1),所观察的处理器利用率(Ucpu)被确定为90%。然而,如果处理器仅在其最大工作频率的80%下工作,则所观察的处理器利用率为90%是不准确的(也就是,真正的处理器利用率实际上是90%×(80/100)=72%)。为了说明处理器正在低于最大频率下工作,设备驱动(例如设备驱动332A-332N)可以使CPU专用调度器(例如CPU专用调度器328A-328N)在处理器性能实用程序抽取计数器数据之前,调整一个或多个计数器的计数数据。例如,为了基于方程式(1)将90%的利用率改为72%的利用率,设备驱动可使空操作计数值的数量增加(例如,如果OS内核计数值=20并且用户应用程序数值=70,则将空操作计数值从空操作计数值=10调整为空操作计数值=35,这样会使Ucpu的计算值由90%改为72%)。作为选择,为了基于方程式(1)将90%的利用率改为72%的利用率,设备驱动可使用户应用程序计数值减少(例如,如果OS内核计数值=20并且空操作计数值=10,则将用户应用程序计数值从用户应用程序计数值=70调整为应用程序计数值=6,这样会使Ucpu的计算值由90%改为72%)。同样,OS内核计数值和用户应用程序计数值中的一个或两个可以减少,而空操作计数值可以增加,以说明处理器正在低于最大工作频率下工作。
在部分实施例中,加权和末加权的计数值都可以存储在计数器(例如,如果处理器正工作在其最大频率的80%,则通过因子0.8来调整加权的计数值)中。因此,如果未加权的计数值是OS内核计数值=20、用户应用程序计数值=70、空操作计数值=10,则加权的计数值是OS内核计数值=20*0.8=16、用户应用程序计数值=70*0.8=56、空操作计数值=10+(20-16)+(70-56)=28(就是说,空操作计数值增加的数量等于OS内核计数值、用户应用程序计数值减少的数量)。在部分实施例中,每次中断,都存储并合计加权的计数值和未加权的计数值。作为选择,在预先设定的未加权的计数值数量或预先设定的时间周期之后,确定加权的计数值。在两种情况下,加权的计数值可以由未加权的计数值乘以权数来获得,而权数反映处理器当前工作频率与处理器最大工作频率的比较。在计数值被修改或加权后,处理器性能实用程序(例如,处理器性能实用程序指令226)可以从计数器抽取信息以计算并报告真实的处理器利用率。
如图所示,OS空间304还包括系统管理中断(SMI)软件354和可以是基于基本输入/输出系统(BIOS)的系统管理模式(SMM)处理器352。SMI软件354包括被设置为产生SMM中断的计算机可读指令。在至少部分实施例中,SMI软件354与OEM驱动共同操作以处理系统300的OS未知的硬件管理。SMM处理器352包括由OEM提供的计算机可读指令,用来提供SMM模式以管理硬件。
如图所示,用户空间306表示运行以满足用户需求的应用程序的域。如图所示,用户空间306包括多个用户应用程序340A-340N。随着系统300的CPU执行不同的用户应用程序340A-340N,由处理器性能实用程序测量的处理器利用率也会改变。例如,如果用户应用程序340A-340N提供给CPU的工作负荷“轻”时,系统300中的一个或多个CPU的工作频率可能会下降。
在多处理器实施例中,例如图2和3所示的实施例中,如上所述的适用于单处理器的计算和报告观察的处理器利用率和真正的处理器利用率也同样适用于多处理器。例如,为了计算多个处理器的所观察的处理器利用率,为每个处理器收集的计数器数据(也就是OS内核计数值、用户应用程序计数值、空操作计数值)可以被累计在一起以确定总的所观察的多处理器利用率。或者,总的所观察的多处理器利用率可以由计算各个所观察的处理器利用率并求它们的均值来确定。
“真正的”多处理器利用率可以在计数器数据被抽取之前通过加权或修改每个处理器的计数器数据来确定(基于每个处理器当前工作频率与最大工作频率的比较)。在这种方式下,所观察的多处理器利用率的计算结果实际提供了真正的多处理器利用率。或者,每个处理器的计数器数据在被抽取之前可以不被修改。如果抽取未修改的计数器数据,则真正的多处理器利用率值也可通过计算各个真正的处理器利用率(如上所述)并求各个真正的处理器利用率的均值来确定。或者,真正的多处理器利用率值也可通过计算所观察的多处理器利用率、然后用每个处理器当前工作频率与最大工作频率的比率的平均值调整(例如乘以)所观察的多处理器利用率来确定。
图4示出了根据本发明备选实施例的另一个系统400。如图所示,系统400的许多组件与前面图3所述的系统300的组件相同或类似。系统400与系统300至少在除去形实转换程序转向器(例如形实转换程序转向器326A)方面有所不同。同时设备驱动432A-432N不能使CPU专用调度器328A-328N修改或加权存储在计数器330A-330N中的计数数据。取而代之的是,每个设备驱动432A-432N从每个相应的计数器330A-330N中读取未修改的计数数据,并且基于接收到的信号402A-402N计算真正的处理器利用率。在至少部分实施例中,信号402A-402N包括OEM设备驱动中断。信号402A-402N通知每个设备驱动432A-432N CPU工作频率的改变(例如,信号402A通知设备驱动432A,信号402B通知设备驱动432B,等等)。
每个设备驱动432A-432N都能计算并报告真正的处理器利用率。作为附加或作为备选,每个设备驱动432A-432N可提供必要的信息(例如计数值和处理器当前工作频率与最大工作频率的比较),使得另一个性能实用程序能够计算并报告真正的处理器利用率。
图5示出了根据本发明实施例的一种方法500。如图5所示,方法500包括确定处理器的最大工作频率(模块502)和确定处理器的当前工作频率(模块504)。方法500还包括对处理器活动进行计数(506)。如果当前工作频率低于最大工作频率(判断模块508),则基于当前工作频率与最大工作频率的比较来修改计数数据(模块510)。例如计数数据可以被加权或者可以被调整以说明处理器当前工作频率与最大工作频率的不同。在修改了计数数据(模块510)之后或者如果当前工作频率不低于最大工作频率(判断模块508),方法500包括基于计数数据计算处理器利用率(模块512)。最后报告处理器利用率(模块514)。
图6示出了根据本发明备选实施例的另一种方法600。如图6所示,方法600包括上面图5所述的许多模块。方法600与方法500的不同在于方法600不修改计数数据。如果处理器的当前工作频率低于处理器的最大工作频率(判断模块508),则方法600基于计数数据和处理器当前工作频率与最大工作频率的比较来计算真正的处理器利用率(模块602)。如果处理器的当前工作频率不低于处理器的最大工作频率(判断模块508),则方法600仅基于计数数据计算观察的处理器利用率(模块512)。最后,报告观察的处理器利用率或者真正的处理器利用率(也就是,真正的处理器利用率说明处理器工作频率的动态变化)(模块514)。如前所述,报告真正的处理器利用率值(UCPU_DYNAMIC)在几个方面是有益的。例如,系统管理员或者其他用户可以依据真正的处理器利用率来确定与业务相关的细节,比如应用程序的效率、部署的服务器的数量和/或向消费者收取的金额。
上面的论述了说明本发明的原理和不同的实施例。一旦完全理解了上述公开,对本领域技术人员来说,种种变化和修改会是显而易见的。例如,虽然图3和4的组件被指定在OS空间304和用户空间306中,但是一些组件比如处理器性能实用程序可以在OS空间304或者在用户空间306中。下面的权利要求可解释为包含所有的类似变化和修改。
Claims (10)
1、一种系统(200),包括:
处理器(202A);和
存储器(208),耦合到所述处理器,所述存储器(208)存储处理器性能实用程序指令(228)和性能调整指令(230);
当执行时,所述处理器性能实用程序指令(228)被设定为引起对所述处理器(202A)的活动(106,108)进行计数并且引起基于计数值(102)确定处理器利用率值,
当执行时,所述性能调整指令(230)被设定为基于所述处理器的当前工作频率与最大工作频率的比较来调整所述处理器利用率值。
2、一种系统(200),包括:
多个处理器(202A-202N);和
存储器(208),耦合到所述多个处理器(202A-202N),所述存储器(202)存储处理器实用程序指令(228)和调整指令(230),
当执行时,所述处理器实用程序指令(228)被设定为引起收集处理器(202A)的活动计数数据(102)并且引起基于所述活动计数数据(102)来确定所观察的处理器利用率值,
当执行时,所述调整指令被设定为基于所述处理器的当前工作频率与最大工作频率的比较来计算所述处理器(202A)的真正的处理器利用率值。
3、如权利要求2所述的系统,其中将所述处理器实用程序指令(228)进一步设定为,当执行时,引起收集所述多个处理器(202A-202N)的每一个的活动计数数据(102),并且引起基于所述多个处理器(202A-202N)的每一个的活动计数数据(102)来确定每一个处理器(202A-202N)的所观察的处理器利用率值。
4、如权利要求3所述的系统,其中将所述处理器实用程序指令(228)进一步设定为,当执行时,确定所述所观察的处理器利用率值的平均值。
5、如权利要求2所述的系统,其中将所述调整指令(230)进一步设定为,当执行时,基于每个处理器的当前工作频率与最大工作频率的比较来计算所述多个处理器(202A-202N)的每一个的真正的处理器利用率值。
6、如权利要求5所述的系统,其中将所述调整指令(230)进一步设定为,当执行时,确定所述真正的处理器利用率值的平均值。
7、一种方法,包括:
确定处理器的最大工作频率;
确定处理器的当前工作频率;
比较所述处理器的当前工作频率与所述处理器的最大工作频率;并且
如果所述当前工作频率小于所述最大工作频率,则基于所述比较来计算处理器利用率值。
8、如权利要求7所述的方法,还包括对处理器活动(106,108)进行计数,其中还基于处理器活动计数值(102)计算所述处理器利用率值。
9、如权利要求8所述的方法,还包括基于所述处理器活动计数值(102)确定第一处理器利用率值,以及通过将所述第一处理器利用率值乘以所述处理器的当前工作频率与所述处理器的最大工作频率的比率来确定第二处理器利用率值。
10、如权利要求8所述的方法,还包括使用所述处理器利用率值来确定至少一个与业务相关的细节,所述与业务相关的细节是从由应用程序的效率、部署的服务器数量和/或向消费者收取的金额构成的组中选择的。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US59873204P | 2004-08-04 | 2004-08-04 | |
US60/598732 | 2004-08-04 | ||
US11/193834 | 2005-07-29 | ||
US11/193,834 US7594128B2 (en) | 2004-08-04 | 2005-07-29 | Systems and methods to determine processor utilization |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1737772A true CN1737772A (zh) | 2006-02-22 |
CN1737772B CN1737772B (zh) | 2010-08-04 |
Family
ID=35758886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510109832.8A Active CN1737772B (zh) | 2004-08-04 | 2005-08-04 | 确定处理器利用率的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7594128B2 (zh) |
CN (1) | CN1737772B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009000122A1 (fr) * | 2007-06-25 | 2008-12-31 | Zte Corporation | Dispositif et procédé pour mesurer le taux d'utilisation d'un processeur |
CN102999391A (zh) * | 2012-11-21 | 2013-03-27 | 华为技术有限公司 | 一种调节处理器运行频率的方法和装置 |
CN103455469A (zh) * | 2012-05-30 | 2013-12-18 | 华为技术有限公司 | 一种控制处理器频率的方法、装置及系统 |
CN104424031A (zh) * | 2013-08-23 | 2015-03-18 | 中兴通讯股份有限公司 | 一种处理器工作频率的控制方法及装置 |
CN104810920A (zh) * | 2014-12-04 | 2015-07-29 | 国家电网公司 | 具有精确计算cpu使用率的智能变电站测控装置及测控方法 |
CN105786615A (zh) * | 2015-01-14 | 2016-07-20 | 联发科技股份有限公司 | 用于优化处理器的控制方法和控制系统 |
CN112912820A (zh) * | 2018-10-26 | 2021-06-04 | 华为技术有限公司 | Cpu调节器的能效调整 |
CN113075895A (zh) * | 2021-03-26 | 2021-07-06 | 江苏城乡建设职业学院 | 一种高速离心机中断程序指令分配方法 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1685457A2 (en) * | 2003-09-22 | 2006-08-02 | Kim Hyeung-Yun | Methods for monitoring structural health conditions |
US7774657B1 (en) * | 2005-09-29 | 2010-08-10 | Symantec Corporation | Automatically estimating correlation between hardware or software changes and problem events |
EP1949317A1 (en) * | 2005-10-24 | 2008-07-30 | Accenture Global Services GmbH | Dynamic server consolidation and configuration |
KR101163812B1 (ko) * | 2006-02-02 | 2012-07-09 | 엘지전자 주식회사 | 휴대용컴퓨터의 절전 제어 장치 및 방법 |
US7716501B2 (en) * | 2006-06-30 | 2010-05-11 | Advanced Micro Devices, Inc. | Method of providing a customer with increased integrated circuit performance |
US7971190B2 (en) * | 2006-11-30 | 2011-06-28 | Intel Corporation | Machine learning performance analysis tool |
US7340378B1 (en) * | 2006-11-30 | 2008-03-04 | International Business Machines Corporation | Weighted event counting system and method for processor performance measurements |
US7818596B2 (en) * | 2006-12-14 | 2010-10-19 | Intel Corporation | Method and apparatus of power management of processor |
US7643964B2 (en) * | 2007-08-21 | 2010-01-05 | Texas Instruments Incorporated | Method, system and apparatus for measuring an idle value of a central processing unit |
US20100070889A1 (en) * | 2008-03-31 | 2010-03-18 | Adam Weisbart | Methods for Bundling Disparate Sets of Web Resources to Unique String Identifiers |
US8055477B2 (en) * | 2008-11-20 | 2011-11-08 | International Business Machines Corporation | Identifying deterministic performance boost capability of a computer system |
US8458498B2 (en) * | 2008-12-23 | 2013-06-04 | Intel Corporation | Method and apparatus of power management of processor |
TWI401559B (zh) * | 2009-07-27 | 2013-07-11 | Asustek Comp Inc | 資料處理系統及其調節方法 |
US8527796B2 (en) * | 2009-08-24 | 2013-09-03 | Intel Corporation | Providing adaptive frequency control for a processor using utilization information |
US8250395B2 (en) * | 2009-11-12 | 2012-08-21 | International Business Machines Corporation | Dynamic voltage and frequency scaling (DVFS) control for simultaneous multi-threading (SMT) processors |
US8458500B2 (en) * | 2009-11-30 | 2013-06-04 | International Business Machines Corporation | Server allocation to workload based on energy profiles |
US9098274B2 (en) * | 2009-12-03 | 2015-08-04 | Intel Corporation | Methods and apparatuses to improve turbo performance for events handling |
US8352759B2 (en) * | 2010-01-11 | 2013-01-08 | Qualcomm Incorporated | System and method of monitoring a central processing unit in real time |
US8862922B2 (en) | 2010-01-14 | 2014-10-14 | International Business Machines Corporation | Data center power adjustment |
JP5388909B2 (ja) * | 2010-03-09 | 2014-01-15 | 株式会社日立製作所 | ハイパバイザ、計算機システム、及び、仮想プロセッサのスケジューリング方法 |
US9804874B2 (en) | 2011-04-20 | 2017-10-31 | Microsoft Technology Licensing, Llc | Consolidation of idle virtual machines on idle logical processors |
US8812825B2 (en) * | 2011-01-10 | 2014-08-19 | Dell Products L.P. | Methods and systems for managing performance and power utilization of a processor employing a fully multithreaded load threshold |
DE112011105867B4 (de) | 2011-11-22 | 2020-03-19 | Intel Corporation | Kollaboratives Prozessor- und Systemleistungs- und Energiemanagement |
US8713562B2 (en) * | 2012-01-06 | 2014-04-29 | International Business Machines Corporation | Intelligent and automated code deployment |
US9075556B2 (en) | 2012-12-21 | 2015-07-07 | Intel Corporation | Controlling configurable peak performance limits of a processor |
US9104490B2 (en) * | 2012-12-27 | 2015-08-11 | Intel Corporation | Methods, systems and apparatuses for processor selection in multi-processor systems |
US20140298074A1 (en) * | 2013-03-29 | 2014-10-02 | GM Global Technology Operations LLC | Method of calculating cpu utilization |
KR102222752B1 (ko) * | 2014-08-01 | 2021-03-04 | 삼성전자주식회사 | 프로세서의 동적 전압 주파수 스케일링 방법 |
US9864667B2 (en) * | 2015-09-25 | 2018-01-09 | Intel Corporation | Techniques for flexible and dynamic frequency-related telemetry |
CN111164538A (zh) * | 2017-12-15 | 2020-05-15 | 英特尔公司 | 处理单元的功率管理 |
US10572259B2 (en) * | 2018-01-22 | 2020-02-25 | Arm Limited | Hints in a data processing apparatus |
JP6968016B2 (ja) * | 2018-03-22 | 2021-11-17 | キオクシア株式会社 | ストレージデバイスおよびコンピュータシステム |
CN111966202B (zh) * | 2020-08-18 | 2021-06-04 | 深圳比特微电子科技有限公司 | 数字货币矿机的电源电压控制方法、装置和数字货币矿机 |
CN114385340B (zh) * | 2022-03-22 | 2022-06-21 | 长沙金维信息技术有限公司 | eCos系统中CPU占用率的统计方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993012480A1 (en) * | 1991-12-17 | 1993-06-24 | Compaq Computer Corporation | Apparatus for reducing computer system power consumption |
US5630110A (en) * | 1996-03-01 | 1997-05-13 | Samsung Electronics Co., Ltd. | Method and apparatus for enhancing performance of a processor |
US20050018611A1 (en) * | 1999-12-01 | 2005-01-27 | International Business Machines Corporation | System and method for monitoring performance, analyzing capacity and utilization, and planning capacity for networks and intelligent, network connected processes |
US6862623B1 (en) * | 2000-04-14 | 2005-03-01 | Microsoft Corporation | Capacity planning for server resources |
US6636976B1 (en) * | 2000-06-30 | 2003-10-21 | Intel Corporation | Mechanism to control di/dt for a microprocessor |
US7363543B2 (en) * | 2002-04-30 | 2008-04-22 | International Business Machines Corporation | Method and apparatus for generating diagnostic recommendations for enhancing process performance |
KR100474287B1 (ko) * | 2002-05-30 | 2005-03-10 | 엘지전자 주식회사 | 휴대용 단말기의 자원 최적화 방법 및 장치 |
US20040267548A1 (en) * | 2003-06-25 | 2004-12-30 | Jones James O. | Workload profiling in computers |
-
2005
- 2005-07-29 US US11/193,834 patent/US7594128B2/en active Active
- 2005-08-04 CN CN200510109832.8A patent/CN1737772B/zh active Active
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009000122A1 (fr) * | 2007-06-25 | 2008-12-31 | Zte Corporation | Dispositif et procédé pour mesurer le taux d'utilisation d'un processeur |
CN103455469A (zh) * | 2012-05-30 | 2013-12-18 | 华为技术有限公司 | 一种控制处理器频率的方法、装置及系统 |
CN103455469B (zh) * | 2012-05-30 | 2016-06-08 | 华为技术有限公司 | 一种控制处理器频率的方法、装置及系统 |
CN102999391A (zh) * | 2012-11-21 | 2013-03-27 | 华为技术有限公司 | 一种调节处理器运行频率的方法和装置 |
CN104424031A (zh) * | 2013-08-23 | 2015-03-18 | 中兴通讯股份有限公司 | 一种处理器工作频率的控制方法及装置 |
CN104424031B (zh) * | 2013-08-23 | 2021-01-26 | 中兴通讯股份有限公司 | 一种处理器工作频率的控制方法及装置 |
CN104810920A (zh) * | 2014-12-04 | 2015-07-29 | 国家电网公司 | 具有精确计算cpu使用率的智能变电站测控装置及测控方法 |
CN105786615A (zh) * | 2015-01-14 | 2016-07-20 | 联发科技股份有限公司 | 用于优化处理器的控制方法和控制系统 |
US10216526B2 (en) | 2015-01-14 | 2019-02-26 | Mediatek Inc. | Controlling method for optimizing a processor and controlling system |
CN112912820A (zh) * | 2018-10-26 | 2021-06-04 | 华为技术有限公司 | Cpu调节器的能效调整 |
US12124883B2 (en) | 2018-10-26 | 2024-10-22 | Huawei Technologies Co., Ltd. | Energy efficiency adjustments for a CPU governor |
CN113075895A (zh) * | 2021-03-26 | 2021-07-06 | 江苏城乡建设职业学院 | 一种高速离心机中断程序指令分配方法 |
Also Published As
Publication number | Publication date |
---|---|
US20060031691A1 (en) | 2006-02-09 |
US7594128B2 (en) | 2009-09-22 |
CN1737772B (zh) | 2010-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1737772A (zh) | 确定处理器利用率的系统和方法 | |
TWI697787B (zh) | 自適應資源分配方法及裝置 | |
Anderson et al. | Continuous profiling: Where have all the cycles gone? | |
US7437446B2 (en) | Reporting of abnormal computer resource utilization data | |
US7685575B1 (en) | Method and apparatus for analyzing an application | |
EP2503733B1 (en) | Data collecting method, data collecting apparatus and network management device | |
Ahn et al. | Scalable analysis techniques for microprocessor performance counter metrics | |
US20080104610A1 (en) | Hardware threads processor core utilization | |
DE112010003330T5 (de) | Einrichten von Prüfpunkten bei Cachespeichern für die spekulative Versionierung | |
CN102576331A (zh) | 用于在虚拟机监视器环境中的虚拟机之间同步瞬时资源使用的系统和方法 | |
CN112559159A (zh) | 一种基于分布式部署的任务调度方法 | |
CN111400010B (zh) | 任务调度方法及装置 | |
CN112069029B (zh) | 国产平台pmu自适应的性能采集监控系统 | |
CN109840141B (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
CN100351792C (zh) | 一种实时任务管理与调度方法 | |
CN101067797A (zh) | 处理器利用率的测量装置及方法 | |
CN1755614A (zh) | 定时器的实现方法 | |
Kulkarni et al. | Dynamic compilation: the benefits of early investing | |
Yu et al. | CERES: Container-based elastic resource management system for mixed workloads | |
US8607232B2 (en) | Identifying a transient thread and excluding the transient thread from a processor load calculation | |
Chu et al. | How Do ML Jobs Fail in Datacenters? Analysis of a Long-Term Dataset from an HPC Cluster | |
CN112115025B (zh) | 一种分布式设备的能耗确定方法及装置 | |
CN102779066A (zh) | 一种减少杀毒软件对测试仪器运行效率影响的方法 | |
CN100337210C (zh) | 实时监测处理器运算负荷的方法 | |
Phan | Energy-efficient straggler mitigation for big data applications on the clouds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170119 Address after: American Texas Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Patentee before: Hewlett Packard Development Co. |