1,310 瀏覽數

RHEL5 XEN – xm vcpu-list/vcpu-set/vcpu-pin command

通常透過 xm list 只能看到 Guest 的 vcpu 個數外並沒有其他關於 CPU 的資訊,xm 提供另外一個指令 xm vcpu-list . 目前我的系統是1個 CPU 4 個 cores.
xm_vcpu
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 的介面來修改.
xm_vcpu02

[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

網友的想法

  1. 自動參照通知: XEN – RHEL5 | Benjr.tw

發表迴響