2015-06-14 291 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