我這裡以vSphere 5.5來舉例說明
在我們虛拟化的環境中,VM的cpu數量如何配置設定,影響着VM的計算性能,更影響着ESXi主機的性能。
如果虛拟機少,能做到cpu不超分,那肯定是沒問題,但是這種情況實在是太少了。
随着虛拟化的應用,我們的VM數量總是在增加,那這就涉及到VM的cpu配置設定問題。
首先,我們先了解幾個和VMcpu相關的概念
Socket--------插槽數,實體cpu個數
Core----------核心數
Lcpu----------每個核心上同時可以執行的線程數,一台VM至少對應一個Lcpu
vCPU/vSMP----------虛拟機的CPU
以5.5為例,官方給出的資料是單台ESXi主機做多能配置設定出4096個vcpu。
這裡的4096指的是單台主機上所有VM配置設定的vcpu總數,而不是一台VM就能配置設定這麼多的vcpu。
單台VM最多可配置設定64個vcpu。這裡的64,是5.5的最大值,但還需要主機上的實體cpu核心數決定,單台VM cpu的數量不能超過單台主機的實體核心數。比如,主機是4路8核cpu,共有32核實體cpu,那麼主機中的任一一台VM都不會配置設定出超過32個vcpu。(不開啟HT的情況下)
上面提到了HT的情況,我們來聊下HT和Lcpu的事情。
Lcpu--------Logical Processor 也叫作邏輯cpu,指的是每個實體核心同時可以執行的線程數。
Vsphere5.5每個實體核心上在不開啟HT的情況下能虛拟出32個Lcpu。
但同一時間,一個核心隻能運作一個Lcpu。開啟超線程,可以有兩個Lcpu。
不開HT的情況下,每個實體核心同一時間可執行一個線程。
開啟了HT,可以讓VMs有兩個vcpu同時在這個核心上排程,可同時執行兩個任務,排程優先級是均等的。根據計算負載的狀态進行排程,原則上,同一台VM的兩個vcpu,不會在開了超線程的同一個core上排程。預設情況下,一台VM排程某個Lcpu時,可以100%占用其資源。其他的VM想要使用則需要排隊等待。
但是這并不意味着,所有的應用程式都适合開啟HT。
超線程對性能的改進與應用程式有關系,有些應用程式使用HT可能會出現性能下降的情況。因為個Lcpu會共享同一個核心的資源(如記憶體緩存和功能單元)。
虛拟化環境裡,如非必要,不要開啟HT,因為會對VMkernel産生更多的cpu排程請求,反而不利于性能的發揮。
接下來談談關于VMcpu配置設定時的數值選擇
給VM配置設定cpu的時候,有兩個數值,一個是vcpu的socket數,一個是vcpu的core數。
這兩者不同的組合,呈現給VM的計算性能是不一樣的。
vsphere client
Numberof virtual sockets ----- 虛拟插槽數
Numberof cores per virtual socket ----- 每個虛拟插槽上的虛拟核心數
這裡是4路8核的實體cpu,不開HT,每台VM最多能配置設定32個vcpu。這32個可以是1個socket、32核。
<a href="http://image.lxway.com/upload/5/ab/5ab41aa29a3f2bcaa868c8ff180ec4c4.jpg" target="_blank"></a>
也可以是32個socket、每個socket裡面有1個虛拟核心。但不管怎麼配置設定,都不會超過實體核心數量。
<a href="http://image.lxway.com/upload/6/ce/6ce45b72131e706c5796b40dabb8298c.jpg" target="_blank"></a>
<a href="http://image.lxway.com/upload/d/11/d11c3cef93faef4e40448dc6f1c6b2b5.jpg" target="_blank"></a>
<a href="http://image.lxway.com/upload/c/cb/ccb73a204b8702a4805bf5dd7aea41e7.jpg" target="_blank"></a>
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/73/81/wKiom1X_uAHT01BZAABugJVYgLA522.jpg" title="20150921_3.png" alt="wKiom1X_uAHT01BZAABugJVYgLA522.jpg" />
根據經驗,這兩個參數的實際應用如下
業務類型:
分布式業務--------多socket、單core
資料庫---------多socket、單core
頁面類型的網站--------單socket、多core
這裡的虛拟socket數量如果超過了實際實體插槽數,我個人覺得,可能會對性能有影響。
關于VMcpu的事情,就先聊這麼多吧!希望對大家有幫助!
本文轉自yzy121403725 51CTO部落格,原文連結:http://blog.51cto.com/lookingdream/1794243,如需轉載請自行聯系原作者