实验验证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、   

你可能感兴趣的:(实验验证kvm VM 线程机制)