每天5分钟玩转openstack跟学(二)KVM虚拟化原理之CPU虚拟化
一个KVM虚机在宿主机中其实是一个qemu-kvm进程,与其他Linux进程一样被调度一个KVM虚拟机就是宿主机上的一个进程将VM1关机,然后查看进程将VM1开机,然后查看进程虚机中的每一个虚拟vCPU则对应qemu-kvm进程中的一个线程KVM中一个VCPU就是宿主机KVM对应进程中的一个线程当前VM1虚拟机vCPU数为1,查看线程数将VM1关机,然后将vCPU改为2,看线程示意图在这个例子中,
·
CPU虚拟化功能是通过qemu-kvm和qemu-system提供,他们是KVM和QEMU的核心包
一个KVM虚机在宿主机中其实是一个qemu-kvm进程,与其他Linux进程一样被调度
- 一个KVM虚拟机就是宿主机上的一个进程
将VM1关机,然后查看进程
将VM1开机,然后查看进程
虚机中的每一个虚拟vCPU则对应qemu-kvm进程中的一个线程
- KVM中一个VCPU就是宿主机KVM对应进程中的一个线程
当前VM1虚拟机vCPU数为1,查看线程数
将VM1关机,然后将vCPU改为2,看线程
示意图
- 在这个例子中,宿主机有两个物理CPU,上面起了两个虚机VM1和VM2,所以当前宿主机上有两个qemu-kvm进程,假设VM1对应进程为qemu-kvm1,另一个为qemu-kvm2。
- VM1有2个vCPU,所以qemu-kvm1进程上应该有2个vCPU线程
- VM2有4个vCPU。所以qemu-kvm2进程上应该有4个vCPU线程
- 这里也演示了另一个知识点,即虚机的vCPU总数可以超过物理CPU数量,这个叫CPU
overcommit(超配)
- KVM允许overcommit,这个特性使得虚机能够充分利用宿主机的CPU资源,但前提是在同一时刻,不是所有的虚机都满负荷运行
- 当然,如果每个虚机都很忙,反而会影响整体性能,所以在使用overcommit的时候,需要对虚机的负载情况有所了解,需要测试
更多推荐
已为社区贡献4条内容
所有评论(0)