kvm如何让一个vcpu占用一个物理cpu

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kvm如何让一个vcpu占用一个物理cpu相关的知识,希望对你有一定的参考价值。

KVM允许客户机过载使用(over-commit)物理资源,即给客户机分配的CPU和内存数量多于物理上实际存在的资源。
物理资源的过载使用能带来一些资源充分利用方面的好处。试想在一台强大的硬件服务器中运行着Web服务器、图片存储服务器、后台数据统计服务器等作为虚拟客户机,但是它们并非在同一时刻都会负载很高,如Web服务器和图片服务器在白天工作时间负载较重,而后台数据统计服务器则主要在晚上工作,所以如果对物理资源进行合理的过载使用,给这几个客户机分配的系统资源总数多余实际拥有的物理资源,就可能在白天和夜晚都充分利用物理硬件资源,而且由于几个客户机不会同时对物理资源造成很大的压力,它们各自的服务质量(QoS)也是能得到保障的。
CPU的过载使用,是让一个或多个客户机使用vCPU的总数量超过实际拥有的物理CPU数量,QEMU会启动更多的线程来为客户机提供服务,这些线程也是被Linux内核调度运行在物理CPU硬件上。
关于CPU的过载使用,最推荐的做法是对多个单CPU的客户机使用over-commit,比如:在拥有4个逻辑CPU的宿主机中,同时运行多于4个(如8个、16个)客户机,其中每个客户机都被分配一个vCPU。这时,如果每个宿主机的负载不很大的情况下,宿主机Linux对每个客户机的调度是非常有效的,这样的过载使用并不会带来客户机中的性能损失。
关于CPU的过载使用,最不推荐的做法是让某一个客户机的vCPU数量超过物理系统上存在CPU数量。比如,在拥有4个逻辑CPU的宿主机中,同时运行一个或多个客户机,其中每个客户机的vCPU数量多于4个(如16个)。这样的使用方法会带来比较明显的性能下降,其性能反而不如将客户机分配2个(或4个)vCPU,而且如果客户机中负载过重时,可能会让整个系统运行不稳定。不过,在并非100%满负载的情况下,一个(或多个)有4个vCPU的客户机运行在拥有4个逻辑CPU的宿主机中并不会带来明显的性能损失。
总的来说,KVM允许CPU的过载使用,但是并不推荐在实际的生产环境(特别是负载较重的环境)中过载使用CPU。在生产环境中过载使用CPU,有必要在部署前进行严格的性能和稳定性测试。
参考技术A 原理是
1、找到vcpu的进程
2、绑定此进程到一个物理cpu(可以参考linux的绑定cpu技术)

以上是关于kvm如何让一个vcpu占用一个物理cpu的主要内容,如果未能解决你的问题,请参考以下文章

KVM虚拟机绑定物理CPU进行性能调优

openstack-KVM-vCPU

2个cpu可以分成3个vcpu

VCPU的解释

vCPU 和 CPU 的关系

KVM管理工具