實驗驗證kvm VM 線程機制

KVM虛擬機線程機制測試

一、       測試目的

測試爲了驗證KVM虛擬機的進程、線程和VCPU之間的關係。爲1+x,其中x爲VCPU的個數。

二、       測試過程

1、重啓系統(注意ps參數爲-elf 而沒有列出相關線程信息

root@starking-OptiPlex-990:/home/starking#ps -elf | grep -v grep |grep kvm

1 S root      1181    2  0  60 -20 -    0 rescue 19:33 ?        00:00:00[kvm-irqfd-clean]

 

2、單核VM測試

//單核啓動

root@starking-OptiPlex-990:/var/vms#qemu-system-x86_64  -m 1024 -hda./kvm001.img -vnc :0

[QEMU-KVM1.2DEBUG] kvm

 

//單核查看信息

root@starking-OptiPlex-990:/home/starking#ps -elf | grep -v grep |grep kvm

1 S root      1181    2  0  60 -20 -    0 rescue 19:33 ?        00:00:00[kvm-irqfd-clean]

2 S root      3422 3059 44  80   0 - 319664 poll_s 19:37 pts/2   00:00:08 qemu-system-x86_64 -m 1024 -hda./kvm001.img -vnc :0

1 S root      3425    2  0  80   0-     0 kthrea 19:37 ?        00:00:00 [kvm-pit/3422]

 

//單核VM關閉

root@starking-OptiPlex-990:/home/starking#ps -elf | grep -v grep |grep kvm

1 S root      1181    2  0  60 -20 -    0 rescue 19:33 ?        00:00:00[kvm-irqfd-clean]

 

 

3、雙核VM測試(進入虛擬機查看cpuinfo信息確實是2個核心)

//啓動smp 2

root@starking-OptiPlex-990:/var/vms#qemu-system-x86_64  -smp 2 -m 1024 -hda./kvm001.img -vnc :0

[QEMU-KVM1.2DEBUG] kvm

 

//查看信息

root@starking-OptiPlex-990:/home/starking#ps -elf | grep -v grep |grep kvm

1 S root      1181    2  0  60 -20 -    0 rescue 19:33 ?        00:00:00[kvm-irqfd-clean]

2 S root      3481 3059 29  80   0 - 357745 poll_s 19:47 pts/2   00:00:34 qemu-system-x86_64 -smp 2 -m 1024-hda ./kvm001.img -vnc :0

1 S root      3485    2  0  80   0-     0 kthrea 19:47 ?        00:00:00 [kvm-pit/3481]

 

 

 

4、三個核心VM測試

root@starking-OptiPlex-990:/var/vms#qemu-system-x86_64  -smp 3 -m 1024 -hda./kvm001.img -vnc :0

[QEMU-KVM1.2DEBUG] kvm

 

root@starking-OptiPlex-990:/home/starking#ps -elf | grep -v grep |grep kvm

1 S root      1181    2  0  60 -20 -    0 rescue 19:33 ?        00:00:00[kvm-irqfd-clean]

2 S root      3507 3059 75  80   0 - 377207 poll_s 19:52 pts/2   00:00:14 qemu-system-x86_64 -smp 3 -m 1024-hda ./kvm001.img -vnc :0

1 S root      3512    2  0  80   0-     0 kthrea 19:52 ?        00:00:00 [kvm-pit/3507]

 

 

結論:發現虛擬機的進程數不隨着smp的數量增加而增加,始終是一個進程(不算[kvm-pit]

 

下面的測試沒有使用命令 –vnc :0 因爲這樣QEMU會多產生兩個線程來處理VNC的操作,使用的是-nographic參數,來表示不用圖形輸出。

1、  單核VM

root@starking-OptiPlex-990:/home/starking# ps -eLf| grep -v grep |grep kvm

root     1181     2 1181  0    1 19:33 ?        00:00:00 [kvm-irqfd-clean]

root     5093  5076  5093 0    2 21:39 pts/2    00:00:00 qemu-system-x86_64 kvm001.img -smp1 -m 1024 -nographic

root     5093  5076  5095 2    2 21:39 pts/2    00:00:07 qemu-system-x86_64 kvm001.img -smp1 -m 1024 -nographic

 

 

 

三、       測試結果

總結:在KVM虛擬機中,每一個虛擬機都會有一個虛擬機進程,和相應VCPU個數的線程,產生的線程總數爲1+X,其中xVCPU的個數。

一般遠程操作時採用了-vnc指示,則此時會額外產生兩個線程來處理VNC的操作,去掉VNC操作,則需要在啓動時加上-nographic參數(此時終端會死機了),表示用ssh鏈接,而不進行圖形顯示。

 

四、       參考網站

1、  http://smilejay.com/2012/08/kvm-vcpu-binding/

2、  http://smilejay.com/2012/08/kvm-sdl-display/

3、   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章