我对KVM有疑问我在网上找不到任何令人满意的答案。
假设我想在拥有2个CPU的主机上创建3个虚拟机。我正在为1个虚拟机分配1个CPU。其他2个虚拟机应该共享1个CPU。如果有可能我想给1 vm 30%而另一个给70%的cpu。
我知道这没有多大意义,但我很好奇,想测试的是: - )
我知道像onapp这样的虚拟机管理程序可以做到这一点。但他们是如何做到的?
答案 0 :(得分:2)
KVM将每个虚拟CPU表示为主机Linux系统中的一个线程,实际上是QEMU进程中的一个线程。因此,guest虚拟机VCPU的调度由Linux调度程序控制。
在Linux上,您可以使用taskset
强制特定的线程到特定的CPU上。这样,您就可以将一个VCPU分配给一个物理CPU,将两个VCPU分配给另一个。例如,请参阅https://groups.google.com/forum/#!topic/linuxkernelnewbies/qs5IiIA4xnw。
至于控制每个VM获得的CPU百分比,Linux有几个可用的调度策略,但我不熟悉它们。您可以找到有关如何控制Linux进程调度的任何信息都将适用于KVM。
这个问题的答案可能有所帮助:https://serverfault.com/questions/313333/kvm-and-virtual-to-physical-cpu-mapping。 (此论坛也可能是这个问题的一个更好的地方,因为这个问题适用于编程问题。)
如果您搜索" KVM虚拟CPU调度"和" Linux CPU调度" (没有引号),你应该找到很多额外的信息。