通常透過 xm list 只能看到 Guest 的 vcpu 個數外並沒有其他關於 CPU 的資訊,xm 提供另外一個指令 xm vcpu-list . 目前我的系統是1個 CPU 4 個 cores.
1.Name : Guest (Domain) name
2.ID : Domain ID
3.VCPUs : 虛擬的 vcpu 個數,0 為第一顆,以此類推.
4.CPU :目前 vcpu 對應到的實體 CPU 是哪一顆.
5.State :
r – running
目前有使用到 CPU 支援的 Guest
b – blocked
可能 Guest 在 sleep 狀態或是等待 I/O 裝置.
p – paused
我們可以使用 xm pause domainID 讓系統進入暫停模式.有點像是進入S1 – "Sleep" 的狀態.
6.Time(s) : 截至目前為止 Domain 的 CPU 有使用到時間單位為分鐘
7.CPU Affinity: Guest 的 vcpu 對應到哪一個實體 CPU .如果為 any cpu 就代表由系統去動態配置.
[root@benjr ~]# xm vcpu-list Name ID VCPUs CPU State Time(s) CPU Affinity Domain-0 0 0 0 -b- 26.4 0 Domain-0 0 1 1 -b- 8.7 1 Domain-0 0 2 2 r– 9.7 2 Domain-0 0 3 3 -b- 5.9 3 rhel4.6 4 0 3 -b- 5.4 any cpu rhel5 3 0 1 -b- 19.0 any cpu
剛剛 Domain U (Guest)的 CPU Affinity 都是 any cpu (代表由系統去動態配置),我們可以手動去配置它的的對應,使用 xm vcpu-pin.
Usage: xm vcpu-pin <Domain> <VCPU> <CPUs>
我要指定 rhel4.6(ID:4) 的第一顆 CPU(目前只有設定一顆) 使用實體第二顆 CPU (core)
[root@benjr ~]# xm vcpu-pin 4 0 2 [root@benjr ~]# xm vcpu-list Name ID VCPUs CPU State Time(s) CPU Affinity Domain-0 0 0 0 -b- 38.4 0 Domain-0 0 1 1 r– 12.5 1 Domain-0 0 2 2 -b- 13.1 2 Domain-0 0 3 3 -b- 7.6 3 rhel4.6 4 0 2 -b- 12.6 2 rhel5 3 0 1 -b- 21.4 any cpu
不過下次 Domain U(Guest) 開關機就會失效了.
關於動態調整 VCPU 個數我只能說是可惜,因為大多數的 OS 都不支援動態調配 CPU 個數.所以 xm vcpu-set 基本上派不上用場.
[root@benjr ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 975 4 r—– 74.6 rhel4.6 4 511 1 -b—- 12.6 rhel5 3 511 1 -b—- 21.5
我要指定 rhel4.6(ID:4) 使用3個 CPU (core)
[root@benjr ~]# xm vcpu-set 4 3
可以看到系統並沒有任何變更.
[root@benjr ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 975 4 r—– 75.0 rhel4.6 4 511 1 -b—- 12.6 rhel5 3 511 1 -b—- 21.5
不過還是透過最基本的方式去調配,關機去修改 /etc/xen/ 設定檔或是使用 virt-manager 的介面來修改.
[root@benjr ~]# xm vcpu-list Name ID VCPUs CPU State Time(s) CPU Affinity Domain-0 0 0 0 r– 456.1 0 Domain-0 0 1 1 r– 217.0 1 Domain-0 0 2 2 -b- 254.6 2 Domain-0 0 3 3 -b- 76.6 3 rhel4.6 5 0 2 -b- 7.7 any cpu rhel4.6 5 1 2 -b- 3.2 any cpu rhel4.6 5 2 2 -b- 3.3 any cpu rhel4.6 5 3 2 -b- 2.9 any cpu rhel5 6 0 1 -b- 1.6 any cpu
One thought on “RHEL5 XEN – xm vcpu-list/vcpu-set/vcpu-pin command”