2015-06-14 1660 views
0

我想知道在CPU使用率和CPU利用率方面是否存在术语上的科学差异。我觉得这两个词都被用作同义词。它们都描述了CPU时间和CPU容量之间的关系。 Wikipedia称之为CPU使用率。 Microsoft使用CPU利用率。但我也发现了一个article,其中Microsoft使用术语“CPU使用情况”。现在VMware定义为在逻辑CPU的上下文中在物理CPU和CPU使用情况下使用CPU利用率。另外,在stackoverflow中没有cpu_utilization标签。CPU使用率和CPU利用率之间的区别?

有谁知道科学的区别?

回答

0

非常值得怀疑。你可能会在一些学术教科书中找到确切的定义,但我敢打赌他们在教科书之间会出现不一致。我在manpages中看到了与代码中的实际实现不一致的定义。在这种情况下,每个人都认为定义非常明显,他们从不检查他们是否与他人一致。

我的建议是完全确定你的使用,并与此相符。其他人可以有一个参考(你的公式/算法),并可以在你和他们之间进行翻译。

顺便说一句,找出利用率,使用率等是非常复杂和充满陷阱。操作系统移动任务,逻辑CPU在内核之间移动,turbo模式暂时冲击时钟速率,工作被卸载到内部协处理器,处理器进入休眠或下降频率,超线程多个逻辑CPU争用共享资源等等。更糟的是,它是一个移动的目标。随着硬件和软件体系结构继续按照摩尔定律和任何SW等价物发展,今天精确且明确定义的指标将开始迅速过时。

+0

我采纳了你的建议。我只是为了自己的目的定义了CPU使用率和CPU利用率。为整个“术语沙拉”添加一点点混淆:当使用CPU时间的程序,进程或线程时,我使用术语“CPU使用率”。说到整个系统CPU需求时,我使用CPU利用率。这意味着所有进程的CPU使用率的总和代表系统CPU使用率。 – Incanus

0

在一个上下文(论文,书籍,网络文章等)中,可能存在差异,但据我所知,这些术语没有一致的普遍接受的标准定义。

但是,在一位作者的着作中,它们可能被用来描述不同的事物。例如(不是穷举性列表):

  • 被如何单个CPU的运算能力的大量使用在特定采样周期
  • 被如何单个CPU的计算能力的多使用由特定调度实体(线程,进程,轻量级进程,内核,中断例程等)
  • 上述任何一种,但考虑到系统中的所有CPU
  • 以上任何一项,但与真正的CPU和虚拟CPU之间的透视差异(无论是超线程还是CPU实际上被VMware,KVM/QEMU,Xen, VirtualBox或类似物)
  • 多少CPU容量在一个算法被用于在另一个
  • 也许几个其他的可能性,以及比较测量....
0

用法 CPU使用率作为间隔期间的百分比。 o VM - 活动使用的虚拟CPU数量,占可用CPU总数的百分比。这是主机对CPU使用情况的看法,而不是来宾操作系统视图。它是虚拟机中所有可用虚拟CPU的平均CPU利用率。例如,如果具有一个虚拟CPU的虚拟机正在具有四个物理CPU并且CPU使用率为100%的主机上运行,​​则该虚拟机将完全使用一个物理CPU。

虚拟CPU使用率= usagemhz /(虚拟CPU数量x核心频率) o主机 - 主机的主动使用的CPU,占可用CPU总数的百分比。活动CPU大约等于所用CPU与可用CPU的比率。

可用CPU =的物理CPU X时钟速率#

100%表示在主机上的所有CPU。例如,如果四个CPU主机正在运行具有两个CPU的虚拟机,并且使用率为50%,则主机将完全使用两个CPU。 o群集 - 群集中所有虚拟机的活动使用CPU的总数,占总可用CPU的百分比。

CPU使用率= CPU usagemhz /作为间隔期间以兆赫兹,effectivecpu

CPU使用率,。 o VM - 活动使用的虚拟CPU数量。这是主机对CPU使用情况的看法,而不是来宾操作系统视图。 o主机 - 主机上所有已启动虚拟机的活动CPU使用情况的总和。最大可能值是处理器的频率乘以处理器的数量。例如,如果您的主机有四个2GHz CPU运行使用4000MHz的虚拟机,则主机完全使用两个CPU。 4000 /(4×2000)= 0.50

使用: 时间占到虚拟机。如果系统服务代表该虚拟机运行,则应该向该虚拟机收取该服务花费的时间(由cpu.system表示)。如果不是,则不应该花这个虚拟机花费的时间(由cpu.overlap表示)。

参考:http://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc%2Fcpu_counters.html