xen客戶機啟動的時候,虛擬cpu是由dom0系統決定固定在某個物理cpu核心上的,這個分配具有隨機性,比如我們的機器上有2個雙核的處理器,也就是說有4個cpu核心,同時我們分配4個核給我們的虛擬客戶機,那麼我們在客戶機也看到4個cpu核心的,但是這四個vcpu核心並不是真的對應著物理機器上的四個核,可能四個虛擬cpu對應的是物理cpu中的1~4個核,也就是說有下面4個可能:
4vcpu=1cpu
4vcpu=2cpu
4vcpu=3cpu
4vcpu=4cpu
vcpu指虛擬cpu核心
cpu指物理cpu核心
因此,當我們的虛擬客戶機上如果執行的是運算密集型的任務的時候,就必須看看我們vcpu與物理cpu的對應,必要的情況下手工固定vcpu到物理cpu上,使該虛擬機器可以使用所有的物理核心;而如果你正在執行io密集型任務,那麼最好就分配乙個超執行緒或整個核給dom0,並且固定其他的域讓他們不能使用cpu 0。
要檢視vcpu於cpu的對應情況,可以使用兩種方法:
1、使用xm vcpu-list命令
xm vcpu-list #列出所有域的cpu對應情況
xm vcpu-list domname #列出指定域的cpu對應情況
如果不進行vcpu固定,上面的list結果在最後一列cpu關聯關係(cpu affinity)的值應該是any cpu,並且第三第四列就列出了vcpu和其對應的cpu
2、進入virsh,執行vcpuinfo命令
vcpuinfo domname #列出指定域的cpu對應情況
如果不進行vcpu固定,上面的命令的結果中,列表中的cpu關聯關係項(cpu affinity)的值應該全部為y,物理cpu有多少核就有多少個y,而如果有指定的話,只有對應的核為y,其他的為-,比如我們的機器有4個核,那麼:
沒有進行vcpu固定: cpu affinity: yyyy
將vcpu固定在第二個核(編號為1)上: cpu affinity: -y--
xen中虛擬客戶機的cpu動態調整有兩種方法
1、使用xm vcpu-set命令可以設定cpu個數
xm vcpu-set domname vcpu-num
使用xm vcpu-pin命令可以固定vcpu到物理cpu
xm vcpu-pin domname vcpu cpu
vcpu--虛擬cpu的號碼(號碼可以用cat /proc/cpuinfo命令得到,一般從0~n-1[其中n為cpu核數])
cpu--主機中cpu的號碼
2、進入virsh,然後用setvcpus命令進行設定
setvcpus domname vcpu-num
使用vcpupin命令可以將vcpu固定到物理cpu
vcpupin domname vcpu cpu
兩種配置方法可以混用。
由於上面已經提到物理cpu的分配預設是由系統分配的,所有動態地增加cpu個數之後,應該檢查cpu分配情況以確保是否滿足了自己的需求。
XEN虛擬CPU管理
xen客戶機啟動的時候,虛擬cpu是由dom0系統決定固定在某個物理cpu核心上的,這個分配具有隨機性,比如我們的機器上有2個雙核的處理器,也就是說有4個cpu核心,同時我們分配4個核給我們的虛擬客戶機,那麼我們在客戶機也看到4個cpu核心的,但是這四個vcpu核心並不是真的對應著物理機器上的四個核...
XEN虛擬CPU管理
xen客戶機啟動的時候,虛擬cpu是由dom0系統決定固定在某個物理cpu核心上的,這個分配具有隨機性,比如我們的機器上有2個雙核的處理器,也就是說有4個cpu核心,同時我們分配4個核給我們的虛擬客戶機,那麼我們在客戶機也看到4個cpu核心的,但是這四個vcpu核心並不是真的對應著物理機器上的四個核...
XEN虛擬CPU管理
xen虛擬cpu管理 xen客戶機啟動的時候,虛擬cpu是由dom0系統決定固定在某個物理cpu核心上的,這個分配具有隨機性,比如我們的機器上有2個雙核的處理器,也就是說有4個cpu核心,同時我們分配4個核給我們的虛擬客戶機,那麼我們在客戶機也看到4個cpu核心的,但是這四個vcpu核心並不是真的對...